[jboss-user] [JBoss Web Services] New message: "Re: How can I force a particular WS implementation? How to ensure Metro over Native?"

Jan Uhlir do-not-reply at jboss.com
Wed Jan 27 08:30:36 EST 2010


User development,

A new message was posted in the thread "How can I force a particular WS implementation? How to ensure Metro over Native?":

http://community.jboss.org/message/522508#522508

Author  : Jan Uhlir
Profile : http://community.jboss.org/people/espinosa_cz

Message:
--------------------------------------------------------------
Yes it is definitively possible to deploy a Metro based web service to a JBoss with Native stack or without any WS support at all.
 
Yes it is definitively possible to deploy a project using two or more WS stack implementations.
 
I have just finished this example project proving it. You are more then welcome to test it:
http://gitorious.org/esp-home/wsarena3/trees/version1
 
Steps to deploy Metro based web service to a hosting AS in a target implementation agnostic way:
* Package libraries      to WAR: sun-jaxws:jaxws-rt,      sun-jaxws:streambuffer, sun-jaxws:stax-ex (Maven naming)
* Generate WSDL and      server Java stubs (hosting AS will not do it for you) and bundle      them. Use CLI, Ant or Maven tools: wsgen.
* In web.xml define FooService servlet as a      com.sun.xml.ws.transport.http.servlet.WSServlet class. Also set      servlet/service URL pattern.
* In sun-jaxws.xml define a real implementation class for FooService, it is      esp.home.wsarena.service.FooService in my case, and define service      URL pattern (t is already defined in web.xml!? Rather keem them      same)
 
There are 2 modules in my project - *webservice-metro* and *webservice-native*. One using SUN Metro stack (bundled in), other JBoss native stack (expected to be provided by server). Both deploy on the server at the same time successfully. I did not put them in one EAR, there should be no difference. Service implementation is in separate JAR module, the same identical JAR is included into both native and metro WAR packages. There is aslo a simple test client to prove functionality of both modules.
 
You are welcome to try them as:
http://localhost:8080/wsarena3-*metro*/FooService?wsdl 
http://localhost:8080/wsarena3-*native*/FooService?wsdl 
 
The question remains – how JBoss recognized that FooService in my webservice-metro module is intended to be run as Metro and not a Native? Why JBoss reacted on annotated FooService in webservice-metro modue and not on the very same class in my webservice-native module?
Possible answers:
A) it detects presence of jaxws libraries (how? Some specific class or a Jar name?)
B) it detects presence of jaxws configuration file the sun-jaxws.xml (is it a simple file detection? Or it does deepr context analysis looking for present class names?)
C) both above
I am very keen to know the answer.

--------------------------------------------------------------

To reply to this message visit the message page: http://community.jboss.org/message/522508#522508




More information about the jboss-user mailing list