[jbossws-dev] [Design of JBoss Web Services] - Re: JBMETA-44, ws annotation processing for references

alessio.soldano@jboss.com do-not-reply at jboss.com
Thu Jun 19 13:51:30 EDT 2008


"alex.loubyansky at jboss.com" wrote : I've modified the WebServiceRefHandler to add injectors to the container. http://jira.jboss.com/jira/browse/EJBTHREE-1424  So, the JBCTS-797 now passes with the latest not yet released EJB3 and metadata versions.
  | 
  | Another issue in the ClientContainer was that the AnnotatedElement was lost during serialization. So, sref.getInjectionTargets() had to be used instead.

As far as I understand, the commit you're talking about is http://fisheye.jboss.com/browse/JBossAS/projects/ejb3/trunk/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java?r1=69577&r2=74808.
Is this included in the current 0.1.5-SNAPSHOT? I'm asking because I've updated my local environment to use it and my jbossws testcases fail with this:

  | ...
  | Caused by: java.lang.IllegalStateException: Annotated element for 'env/Service1' is niether Method nor Field: class org.jboss.test.ws.jaxws.webserviceref.TestEndpointClientTwo
  |         at org.jboss.injection.WebServiceRefHandler.addInjector(WebServiceRefHandler.java:113)
  |         at org.jboss.injection.WebServiceRefHandler.loadXml(WebServiceRefHandler.java:82)
  |         at org.jboss.ejb3.clientmodule.ClientENCInjectionContainer.processMetaData(ClientENCInjectionContainer.java:319)
  |         at org.jboss.ejb3.clientmodule.ClientENCInjectionContainer.<init>(ClientENCInjectionContainer.java:164)
  |         at org.jboss.ejb3.deployers.Ejb3ClientDeployer.deploy(Ejb3ClientDeployer.java:122)
  | 
I guess that's because the service class is something like this:

  | @WebServiceRef(name = "Service1")
  | // Test multiple on type
  | @WebServiceRefs( { @WebServiceRef(name = "Service2"), @WebServiceRef(name = "Port1", type = TestEndpoint.class) })
  | public class TestEndpointClientTwo
  | {
  |    // provide logging
  |    private static final Logger log = Logger.getLogger(org.jboss.test.ws.jaxws.webserviceref.TestEndpointClientTwo.class);
  | 
  |    // Test on field
  |    @WebServiceRef(name = "Service3")
  |    static Service service3;
  | ...
  | 
i.e. it has @WebServiceRef on the class too.
Hope this helps
Thanks

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4159373#4159373

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4159373



More information about the jbossws-dev mailing list