11 Replies Latest reply on Nov 20, 2009 10:23 AM by Alessio Soldano

    @WebServiceRef and

    Alexandros Karypidis Novice

      Hello,

      I am using @WebServiceRef to inject a client in a servlet. It works fine, but I'd like to configure some extra things for the client (specifically, I'm trying to enable WS-RM persistence) using CXF's beans.xml.

      So far, I'm trying to do it using a <jaxws:client> declaration with the "createdFromAPI" attribute set to true (I assume the client is created by your integration layer using the CXF API), but it does not seem to have effect at runtime:

       <bean id="RMTxStore" class="org.apache.cxf.ws.rm.persistence.jdbc.RMTxStore">
       <property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" />
       <property name="url" value="jdbc:derby:/wsrmdb;create=true" />
       </bean>
      
       <jaxws:client id="AsyncMessagingClient"
       name="{http://my.wsdl.tns/}AsyncMessagingImplPort" createdFromAPI="true"
       serviceClass="my.wsconsume.generated.clientstub.AsyncMessagingService"
       address="http://localhost:8080/the-service-impl-war-on-my-machine/AsyncMessagingService?wsdl">
       <jaxws:features>
       <wsa:addressing />
       <wsrm-mgr:reliableMessaging>
       <wsrm-mgr:store>
       <property name="store" ref="RMTxStore" />
       </wsrm-mgr:store>
       </wsrm-mgr:reliableMessaging>
       </jaxws:features>
       </jaxws:client>
      


      I've been careful to have the "name" attribute match the {tns}/portname convention required by CXF when using "createdFromAPI".

      Now, I don't get any errors, everything works, but the configuration is ignored. So what are my options on this?

      Am I doing something that's unsupported and simply won't work (I noticed in the documentation only jaxws:endpoint is mentioned), or is there something I'm missing.

      Cheers,
      Alex