This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Web Services and the fly likes Compatibility of Web Service servers Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "Compatibility of Web Service servers" Watch "Compatibility of Web Service servers" New topic
Author

Compatibility of Web Service servers

Gang Chen
Greenhorn

Joined: Aug 04, 2005
Posts: 9
Ranchers:

I am new to Web Services and got confused by compatibility of java Web Service code generated on different IDEs.

My understanding is(correct me if I am wrong):

In Java world, there are three stack of web service implementation:
1. Annotated java--> beehive code gen-->Apache Beehive Runtime-->Tomcat server;
2. Annotated java--> wsad code gen-->Websphere runtime-->Websphere App Server;
3. Annotated java--> wls code gen--> Weblogic runtime--> Weblogic App Server.

Because the web containers are different, each stack generates runtime code differently.
The generated code of each stack is designed to run on the specific web container.

I know "beehive code gen" could be deployed on WebLogic server.

Therefore, it seems there is no universal web services that can run on all servers. Do I have to commit to one specific server?


Thanks ranchers.
Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2921
    
    5
Originally posted by Gang Chen:
Therefore, it seems there is no universal web services that can run on all servers. Do I have to commit to one specific server?


What is supposed to be "compatible" is the web service contract. For a SOAP web service that is the WSDL. The web service client doesn't care what platform is implementing the web service. The "annotated Java" isn't the service contract because there is no way for the client to see it. So ultimately there is no point in having a "compatible" server implementation.
Gang Chen
Greenhorn

Joined: Aug 04, 2005
Posts: 9
I agree with you on the client side. It's same as the client just needs to know the signature of an interface regardless how an interface is implemented on different types of server.

My question is on the server side, I suppose there is an ear file deployed to the server that can be Tomcat, Websphere, weblogic or whatever. That ear file may contain server specific code that may not be ported to another kind of server.

I hope my argument is valid.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41032
    
  43
That ear file may contain server specific code that may not be ported to another kind of server.


Do they? I would be surprised if -e.g.- the Beehive stuff couldn't run on any servlet container. Same with the JAX-WS reference installation - it can be deployed in any servlet container.


Ping & DNS - my free Android networking tools app
Peer Reynders
Bartender

Joined: Aug 19, 2005
Posts: 2921
    
    5
Most of the generated code will contain references to vendor extensions (even the apache stuff will usually reference something org.apache.*) for "reusable" functionality not covered by JAX-WS. Therefore most WS components are inherently not portable but vendor platform specific. Your should be able isolate yourself from that by making the WS component an "interface" that simply delegates to the real service implementation that is completely independent from any web service aspects. At least that will minimize the non-portable code.
[ October 13, 2007: Message edited by: Peer Reynders ]
Gang Chen
Greenhorn

Joined: Aug 04, 2005
Posts: 9
Thanks Peer.
I got your point. It seems WS is same as other Java technologies that sometimes contain vendor specific code and a developer has to be careful if there is a need for portability. I just want to confirm what I observed is correct. Thanks again.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41032
    
  43
Originally posted by Gang Chen:
It seems WS is same as other Java technologies that sometimes contain vendor specific code and a developer has to be careful if there is a need for portability.

Yes, but note how it seems to be the commercial vendor's (WebLogic, WebSphere) offerings that do this. The open source stacks (Axis, JAX-WS RI, Apache CXF) don't seem to suffer from this problem.
Gang Chen
Greenhorn

Joined: Aug 04, 2005
Posts: 9
Ulf, thanks for the reply. However, to develop WS for commercial purpose developers tend to but not restricted to use commercial enterprise servers.

I am currently learning WS for future job search and I am sure if one day when I look for a WS job I will be asked if I use Weblogic or Websphere. Therefore, I'd like to choose either one of them.

My observation is that Weblogic seems leading the WS commercial market. Am I right?
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41032
    
  43
Originally posted by Gang Chen:
I am currently learning WS for future job search and I am sure if one day when I look for a WS job I will be asked if I use Weblogic or Websphere. Therefore, I'd like to choose either one of them.

I wouldn't worry about that. A solid understanding of SOAP, WSDL, WS-Security and SOA is important than what server you've used.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Compatibility of Web Service servers
 
Similar Threads
Portable J2EE 1.4 Web Services?
Issue while deploying web service jwstutorial example CLI171
Sample Questions for 288 - Need answers
please answer this 128 questions for WLS. Urgently!
Running sample Beehive NetUI Tutorial using Tomcat