my dog learned polymorphism*
The moose likes Web Services and the fly likes J2EE web services, Axis, JWSDP Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "J2EE web services, Axis, JWSDP" Watch "J2EE web services, Axis, JWSDP" New topic
Author

J2EE web services, Axis, JWSDP

Aryan Khan
Ranch Hand

Joined: Sep 12, 2004
Posts: 290

Hi all,

Need some clarification about the subject matter.

1. Are Axis and JWSDP implementation of JAX-RPC and can be used interchangeably?
2. Can web services developed with Axis run on J2EE servers like Oralce AS, Websphere with out modification.

3. Is the depolyment of web services standard across all these? I know there is a JSR which covers this issue.

4. I have developed web services using Axis, I would like to deploy them on Oracle AS and websphere AS, Do i need to change any thing?

5. Is there any standard API for developing web services, like JMS for accessing MOM or JAXP for XML?

Thanks
Ahmad


OCP/MCP/SCJP/SCWCD/IBM XML/SCMAD/SCEA-1
Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2922
    
    5
You may want to have a look at this topic:
Portable J2EE 1.4 Web Services?

1. Are Axis and JWSDP implementation of JAX-RPC and can be used interchangeably?

Both implementations have to follow the JAX-RPC spec so in "principle" they are exchangeable. That however is meaningless as the tools such as WSDL2Java, Java2WSDL (or the equivalent Wizard-like tools that come with other app servers) are not limited to generating code that uses only the APIs from the various Java/J2EE Web Service Specs - they will readily include references to libraries that are unique to the platform that those tools came with. If however you were to (tediously) hand code a component that uses exclusively JAX-RPC and other prevalent libraries then there is a chance that the component may be portable (can't say for sure because I haven't tried it.)

2. Can web services developed with Axis run on J2EE servers like Oralce AS, Websphere with out modification.

Only if you also deploy Axis to those platforms. These servers will not serve the web service from their own web services infrastructure - as far as they are concerned Axis is just another web app. Many people have done this successfully but there are also cases where they ran into some problems.
If you don't want to deploy Axis you will have to hand code the component using only the standard APIs (possibly duplicating a lot of functionality that is already available in vendor-specific libraries). Another option is to adopt a strategy of coding the service implementation (the piece that does the actual work rather than the "web service interfacing") in a portable component and provide a WSDL (which should comply with the Basic Profile) - then use the application server specific tools to generate the server/client stubs and write the "glue" (delegation) code to use your portable service implementation.

3. Is the deployment of web services standard across all these? I know there is a JSR which covers this issue.

Not at the moment. Which is the JSR that is supposed to address this? (JSR-224 JAX-WS 2.0?) Currently the Java/J2EE Web Service specifications focus on providing the infrastructure that makes it possible to build components that can provide/consume interoperable Web Services - portability of the component built under one vendors server to another vendors server was not a concern. That doesn't mean it won't be in the future - however I can't see that the vendors will be happy about it.

4. I have developed web services using Axis, I would like to deploy them on Oracle AS and websphere AS, Do i need to change any thing?
As I said before, you will have to install Axis to the application server. And getting Axis to work may or may not be a challenge. Also keep in mind that Axis only supports "Java Web Services", not "J2EE Web Services". A J2EE 1.4 compliant web server has to be able to expose a Stateless Session Bean as a Web service - Axis can't do that (you need an EJB container for that). However it may a better, architecturally speaking, to implement the actual service in "plain Java" and then expose the service "in parallel" as a Web Service and an SLSB, rather than stacking the Web Service on top of the SLSB - so the "Web Service SLSB" thing may not be an issue.

5. Is there any standard API for developing web services, like JMS for accessing MOM or JAXP for XML?

Yes - but its not "one" API (JAX-RPC, JAX-WS, SAAJ, JAXP, JAXB, etc). And the standard APIs aren't the problem. The problem is that the "helpful" tools like WSDL2Java, Java2WSDL, etc. will include dependencies to the platform that provided them in the first place. There are currently no specifications that mandate: "Given a WSDL that looks like this your WSDL2Java tool shall generate code for client and server stubs that looks like that, which only includes dependencies to the following standard APIs (JAXP,...) ".
Aryan Khan
Ranch Hand

Joined: Sep 12, 2004
Posts: 290

Many thanks for the detailed reply.
My concern was the same that after running WSDL2Java or other tools from axis they refer to packages from org.apache* they may conform to JAX-RPC standards but the API is different and wont make it portable. I havent been through the sun specs, but why such a lazy effort is being made for web services. It is a great technology every one needs it and can use it. Why doesnt the sun specs mandate standards for tools like WSDL2Java as well.

Many thanks
Ahmad
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: J2EE web services, Axis, JWSDP