I have a WSDL that serves as a contract with a vendor. I need to generate service clients and a service impl for testing that faithfully reflects the service of the vendor.
When I generate a java SEI using wsconsume and create a java impl of the SEI and deploy to jboss then the WSDL generated by jboss does not reflect the original WSDL used as input for wsconsume. The targetnamespace and service name has been changed to match the java package name and class name of the impl class instead of matching the names in the original WSDL. This causes clients generated from the original WSDL to fail because they can't find the names they are looking for.
The service java impl that I created references the autogenerated java SEI both by subclassing the SEI and through annotation @javax.jws.WebService(endpointInterface="...autogenerate SEI")
Looking into jsr 181 (sec 4.1.1) I noticed that the @Webservice(targetNamepspace="..") annotation maps to different parts of the WSDL depending on whether the annotation is present on the java SEI or the java impl class. If the annotation is only present in the SEI then its mapped to wsdl:porttype. In the opriginal WSDL the targetnamespace was used for wsdl:service.
So how do I generate a test service that reflects the original WSDL?
|Retrieving data ...|