Hi again, finally, I solved my problem. If I change the @WebServiceRef and add the parameter "value=javax.xml.ws.Service.class", then everything works as expected. But why doesn't Geronimo take this value from the deployment descriptor's <service-interface/> tag? Isn't the container supposed to join information from annotations and deployment descriptor files?
Regards, Janko Janko Heilgeist wrote: > Hi, > > I currently try to develop a web service that is supposed to contact > other web service instances of the same port type at remote locations. I > started with a WSDL and would like to have as much code generated by > Geronimo as possible. My problem is, that I can't specify the > <soap:address location=""/> value of a service. This value is > automatically patched into the WSDL during deployment of the web service > implementation by Geronimo. Unfortunately, the generated client stub > seems to read the WSDL from its own module file and therefore receives > the unpatched version. This leads to a failure of the deployment process. > > Therefore, I played around with alternatives that might allow me to > deploy the client without a reference to the WSDL. E.g. > > @Stateless > @WebService( > serviceName="MyService", portName="MyServicePort", > endpointInterface="com.heilgeist.tests.tst_ws_annotations.ws_ejb.MyServiceInterface", > > targetNamespace="http://heilgeist.com/tests/tst-ws-annotations/service") > public class MyServiceEJBImpl implements MyServiceInterface { > @WebServiceRef(name="service/AnotherMyWebService") > private MyServiceInterface myService; > > public void doSomething(int counter) { > if (counter > 0) { > BindingProvider bp = (BindingProvider) myService; > // the address will come from a DB in the real service > bp.getRequestContext().put( > BindingProvider.ENDPOINT_ADDRESS_PROPERTY, > "http://localhost:9090/MyWebService"); > myService.doSomething(--counter); > } > } > > } > > ejb-jar.xml: > <session> > <ejb-name>MyWebService</ejb-name> > <ejb-class> > com.heilgeist.tests.tst_ws_annotations.ws_ejb.MyServiceEJBImpl > </ejb-class> > > <service-ref> > <service-ref-name>service/AnotherMyWebService</service-ref-name> > <service-interface>javax.xml.ws.Service</service-interface> > </service-ref> > </session> > > This set-up works fine as long as only a single web service is packaged > in the EJB-JAR. As soon as I put a second (completely independent) web > service in the same module, the deployment process aborts with > > com.heilgeist.tests.tst_ws_annotations.ws_ejb.MyServiceInterface does > not extend javax.xml.rpc.Service or javax.xml.ws.Service > > So it looks like Geronimo is guessing some missing information, that it > can no longer guess with two services. Any ideas on how to solve this? > > Regards, Janko >