viernes, 5 de noviembre de 2010

Overwriting Soap Location at Jboss Bottom up WS

JBOSS (5.1.0 GA) - JAXWS - BOTTOM UP

The Jboss Server overwrites de soap location tag on the generated wsdl, for those who want to publish the generated wsdl with a different host/port location, (and not jboss install specific but app specific, meaning that each ws can have a different location) the solution I found was:

* Generate the webservice, and download the generated wsdl.
* Change the soap-location by hand
< service name="ExampleServices">
< port binding="tns:ExampleServicesBinding" name="ExampleServicesPort">
< soap:address location="http://www.mynewlocation:8090/servicepacket-1.0.0/ExampleServices"/>
< /port>
< /service>

* Put the file on META-INF/wsdl/thisservicename.wsdl
* Add to your @WebService the "wsdlLocation" parameter as in this example:
@WebService(serviceName="ExampleServices",targetNamespace="urn:ExampleServices",name="ExampleServices", wsdlLocation="META-INF/wsdl/ExampleServices.wsdl")

One more thing u'll need to do is look for jboss-5.1.0.GA/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml file and;

and set the parameter < property name="modifySOAPAddress">true< /property> to false

You don't need to do anything about the other webservices , because if the server doesn't find a wsdlLocation parameter it will write the default one, always.

The server must be restarted.