I have a web service with WS-RM enabled. Here is the WSDL as published by 
JBoss, with the associated policy in bold fonts:

<definitions name="StationsService" 
targetNamespace="http://www.armoniq.com/StationsService/"; 
xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://www.armoniq.com/StationsService/"; 
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  |  <types>
  |   <xs:schema targetNamespace="http://www.armoniq.com/StationsService/"; 
version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema";>
  |    <xs:element name="echo">
  |     <xs:complexType>
  |      <xs:sequence>
  |       <xs:element name="in" type="xs:string"/>
  |      </xs:sequence>
  |     </xs:complexType>
  |    </xs:element>
  |    <xs:element name="echoResponse">
  |     <xs:complexType>
  |      <xs:sequence>
  |       <xs:element name="out" type="xs:string"/>
  |      </xs:sequence>
  |     </xs:complexType>
  |    </xs:element>
  |   </xs:schema>
  |  </types>
  |  <message name="StationsServicePortType_echoResponse">
  |   <part element="tns:echoResponse" name="echoResponse"/>
  |  </message>
  |  <message name="StationsServicePortType_echo">
  |   <part element="tns:echo" name="echo"/>
  |  </message>
  |  <portType name="StationsServicePortType">
  |   <operation name="echo" parameterOrder="echo">
  |    <input message="tns:StationsServicePortType_echo"/>
  |    <output message="tns:StationsServicePortType_echoResponse"/>
  |   </operation>
  |  </portType>
  |  <binding name="StationsServicePortTypeBinding" 
type="tns:StationsServicePortType">
  |   <wsp:PolicyReference URI="#exactly_one_in_order_rm_delivery"/>
  |   <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
  |   <operation name="echo">
  |    <soap:operation 
soapAction="http://www.armoniq.com/StationsService/echo"/>
  |    <input>
  |     <soap:body use="literal"/>
  |    </input>
  |    <output>
  |     <soap:body use="literal"/>
  |    </output>
  |   </operation>
  |  </binding>
  |  <service name="StationsService">
  |   <port binding="tns:StationsServicePortTypeBinding" 
name="StationsServicePort">
  |    <soap:address 
location="http://localhost:8080/eessi.ear-eessi.ws.mta/StationsServiceImpl"/>
  |   </port>
  |  </service>
  |  <wsp:Policy wsu:Id="exactly_one_in_order_rm_delivery" 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";>
  |   <wsp:All>
  |    <wsrmp:DeliveryAssurance 
xmlns:wsrmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702";>
  |     <wsp:Policy>
  |      <wsp:ExactlyOne>
  |       <wsp:All>
  |        <wsrmp:ExactlyOnce/>
  |        <wsrmp:InOrder/>
  |       </wsp:All>
  |      </wsp:ExactlyOne>
  |     </wsp:Policy>
  |    </wsrmp:DeliveryAssurance>
  |   </wsp:All>
  |  </wsp:Policy>
  | </definitions>

When starting up, JBoss logs that that the service is running properly with the 
appropriate JAX-WS handlers for WS-ReliableMessaging:

HandlerMetaDataJAXWS:
  |  type=POST
  |  name=WSAddressing Handler
  |  class=class 
org.jboss.ws.extensions.addressing.jaxws.WSAddressingServerHandler
  |  params=[]
  |  protocols=##SOAP11_HTTP
  |  services=null
  |  ports=null
  | 
  | HandlerMetaDataJAXWS:
  |  type=POST
  |  name=WSRM Handler
  |  class=class org.jboss.ws.extensions.wsrm.jaxws.RMServerHandler
  |  params=[]
  |  protocols=##SOAP11_HTTP
  |  services=null
  |  ports=null
  | 2008-08-12 14:16:20,081 DEBUG 
[org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl] 
RMDeploymentAspect:Start
  | 2008-08-12 14:16:20,081 DEBUG [org.jboss.wsf.framework.DefaultSPIProvider] 
provide SPI 'class org.jboss.wsf.spi.management.ServerConfigFactory'
  | 2008-08-12 14:16:20,081 DEBUG [org.jboss.wsf.framework.DefaultSPIProvider] 
class org.jboss.wsf.spi.management.ServerConfigFactory Implementation: [EMAIL 
PROTECTED]
  | 2008-08-12 14:16:20,112 INFO  
[org.jboss.ws.extensions.wsrm.server.RMDeploymentAspect] WS-RM invocation 
handler associated with endpoint 
http://localhost:8080/eessi.ear-eessi.ws.mta/StationsServiceImpl
  | 2008-08-12 14:16:20,112 DEBUG 
[org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl] 
PublishContractDeploymentAspect:Start
  | 2008-08-12 14:16:20,112 DEBUG [org.jboss.wsf.framework.DefaultSPIProvider] 
provide SPI 'class org.jboss.wsf.spi.management.ServerConfigFactory'
  | 2008-08-12 14:16:20,112 DEBUG [org.jboss.wsf.framework.DefaultSPIProvider] 
class org.jboss.wsf.spi.management.ServerConfigFactory Implementation: [EMAIL 
PROTECTED]
  | 2008-08-12 14:16:20,112 DEBUG [org.jboss.wsf.stack.jbws.WSDLFilePublisher] 
Publish WSDL file: 
file:/D:/Programs/jboss/as0/jboss-4.2.3.GA/server/default/tmp/jbossws/StationsService13926.wsdl
  | 2008-08-12 14:16:20,112 INFO  [org.jboss.wsf.stack.jbws.WSDLFilePublisher] 
WSDL published to: 
file:/D:/Programs/jboss/as0/jboss-4.2.3.GA/server/default/data/wsdl/eessi.ear.ear/eessi.ws.mta.jar/StationsService13926.wsdl

I then try to send two messages from a simple Java client using asynchronous 
invocation:

        public void wsrmTest() throws InterruptedException, ExecutionException,
  |                     MalformedURLException {
  |             final int MAX_PACKETS = 2;
  |             Response<EchoResponse> response = null;
  | 
  |             QName serviceName = new QName(
  |                             "http://www.armoniq.com/StationsService/";, 
"StationsService");
  |             URL wsdlURL = new URL(
  |                             
"http://localhost:8080/eessi.ear-eessi.ws.mta/StationsServiceImpl?wsdl";);
  |             StationsService ss = new StationsService(wsdlURL, serviceName);
  |             ssp = ss.getStationsServicePort();
  |             ((StubExt) ssp).setConfigName("Standard Anonymous WSRM Client",
  |                             "META-INF/wsrm-jaxws-client-config.xml");
  | 
  |             for (int i = 0; i < MAX_PACKETS; i++)
  |                     response = ssp.echoAsync("PACKET " + i);
  |             System.out.println("Sent out all my packets asynchronously...");
  | 
  |             System.out.println("Last response: " + response.get());
  |             Thread.sleep((MAX_PACKETS + 1) * 2000);
  |             System.out.println("All packets should have returned...");
  |             ((RMProvider) ssp).closeSequence();
  |     }

When running, JBoss throws this exception:

2008-08-12 14:21:18,039 DEBUG 
[org.jboss.ws.extensions.wsrm.server.RMServerSequence] Inbound Sequence: 
urn:uuid:5074e327-2f26-424f-a744-47836a765fd, received message no. 1
  | 2008-08-12 14:21:18,055 DEBUG 
[org.jboss.ws.extensions.wsrm.server.RMInvocationHandler] Invoking method: echo
  | 2008-08-12 14:21:18,055 DEBUG [org.jboss.ws.core.EndpointInvocation] 
getRequestPayload
  | 2008-08-12 14:21:18,055 DEBUG [org.jboss.ws.core.EndpointInvocation] 
getRequestParamValue: {http://www.armoniq.com/StationsService/}echo
  | 2008-08-12 14:21:18,055 DEBUG [org.jboss.ws.core.soap.SOAPContentElement] 
-----------------------------------
  | 2008-08-12 14:21:18,055 DEBUG [org.jboss.ws.core.soap.SOAPContentElement] 
Transitioning from XML_VALID to OBJECT_VALID
  | 2008-08-12 14:21:18,055 DEBUG [org.jboss.ws.core.soap.XMLContent] 
getObjectValue 
[xmlType={http://www.armoniq.com/StationsService/}echo,javaType=class 
com.armoniq.stationsservice.Echo]
  | 2008-08-12 14:21:18,055 DEBUG [org.jboss.ws.core.jaxws.JAXBDeserializer] 
deserialize: 
[xmlName={http://www.armoniq.com/StationsService/}echo,xmlType={http://www.armoniq.com/StationsService/}echo]
  | 2008-08-12 14:21:18,055 DEBUG 
[org.jboss.ws.core.jaxws.handler.MessageContextJAXWS] Begin response processing
  | 2008-08-12 14:21:18,055 DEBUG 
[org.jboss.ws.core.soap.MessageContextAssociation] popMessageContext: [EMAIL 
PROTECTED] (Thread http-localhost%2F127.0.0.1-8080-5)
  | 2008-08-12 14:21:18,055 DEBUG 
[org.jboss.ws.core.soap.MessageContextAssociation] pushMessageContext: [EMAIL 
PROTECTED] (Thread http-localhost%2F127.0.0.1-8080-5)
  | 2008-08-12 14:21:18,055 ERROR 
[org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception
  | org.jboss.ws.extensions.wsrm.RMFault: The value of wsrm:Identifier is not a 
known Sequence identifier.
  |     at 
org.jboss.ws.extensions.wsrm.server.RMInvocationHandler.getUnknownSequenceFault(RMInvocationHandler.java:297)
  |     at 
org.jboss.ws.extensions.wsrm.server.RMInvocationHandler.prepareResponseContext(RMInvocationHandler.java:242)
  |     at 
org.jboss.ws.extensions.wsrm.server.RMInvocationHandler.invoke(RMInvocationHandler.java:306)
  |     at 
org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:221)
  |     at 
org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:466)
  |     at 
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:284)
  |     at 
org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:201)
  |     at 
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:134)
  |     at 
org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
  |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  |     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  |     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |     at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
  |     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  |     at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
  |     at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
  |     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  |     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  |     at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
  |     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
  |     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |     at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
  |     at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
  |     at java.lang.Thread.run(Unknown Source)
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] Cannot obtain fault meta data 
for: class org.jboss.ws.extensions.wsrm.RMFault
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callFaultHandlerChain: 
PRE
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callFaultHandlerChain: 
ENDPOINT
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callFaultHandlerChain: 
POST
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Enter: 
handleOutBoundFault
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.extensions.addressing.jaxws.WSAddressingServerHandler] handleFault
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.extensions.wsrm.jaxws.RMServerHandler] handling fault message
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.extensions.wsrm.jaxws.RMServerHandler] SequenceFault WSRM message 
was serialized to payload
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Exit: 
handleOutBoundFault with status: true
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] closeHandlerChain
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] close
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] closeHandlerChain
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] close
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] closeHandlerChain
  | 2008-08-12 14:21:18,071 DEBUG 
[org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] close

If I don't use the asynchronous invocation, my client works just fine. Any idea 
what I am doing wrong?


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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170051
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to