[jboss-user] [JBossWS] - Can't get WS-RM to do ExactlyOnce + InOrder
karypid
do-not-reply at jboss.com
Tue Aug 12 10:55:48 EDT 2008
I am using this web service to test WS-RM:
@Stateless
| @WebService(serviceName = "MyRMTestService",
| portName = "MyRMTestSOAP",
| targetNamespace = "http://www.example.org/MyRMTest/",
| endpointInterface = "org.example.myrmtest.MyRMTest"
| )
| @EndpointConfig(
| configFile = "META-INF/wsrm-jaxws-endpoint-config.xml",
| configName = "Standard WSRM Endpoint"
| )
| @PolicyAttachment(@Policy(
| policyFileLocation = "META-INF/wsrm-exactly-once-in-order-policy.xml",
| scope = PolicyScopeLevel.WSDL_BINDING
| ))
| public class MyRMTestService {
| public String echo(String in) {
| System.out.println("RECEIVED: " + in);
| try {
| Thread.sleep(2000);
| } catch (InterruptedException e) {
| e.printStackTrace();
| }
| System.out.println("RETURNING from: " + in);
| return in;
| }
| }The policy file contains:<?xml version="1.0" encoding="UTF-8"?>
| <wsp:Policy wsu:Id="exactly_one_in_order_rm_delivery"
| xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
| xmlns:wsrmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702"
| xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
| <wsrmp:DeliveryAssurance>
| <wsp:Policy>
| <wsrmp:ExactlyOnce />
| <wsrmp:InOrder />
| </wsp:Policy>
| </wsrmp:DeliveryAssurance>
| </wsp:Policy>I was assuming that if I send out 5 messages using a simple client they should arrive exactly once and in order. Instead, using this client: public void wsrmTest() throws Throwable {
| final int MAX_PACKETS = 5;
|
| try {
| QName serviceName = new QName("http://www.example.org/MyRMTest/",
| "MyRMTestService");
| URL wsdlURL = new URL(
| "http://localhost:8080/myRMTest/MyRMTestService?wsdl");
| MyRMTest_Service ss = new MyRMTest_Service(wsdlURL, serviceName);
| ssp = ss.getMyRMTestSOAP();
| ((StubExt) ssp).setConfigName("Standard Anonymous WSRM Client",
| "META-INF/wsrm-jaxws-client-config.xml");
|
| Response<EchoResponse> asyncResponse = null;
| for (int i = 0; i < MAX_PACKETS; i++)
| asyncResponse = ssp.echoAsync("ASYNC PACKET " + i);
|
| System.out
| .println("Last response: " + asyncResponse.get());
| } catch (Throwable t) {
| t.printStackTrace();
| throw t;
| }
|
| ((RMProvider) ssp).closeSequence();
| } I get the following output:17:53:14,426 INFO [STDOUT] RECEIVED: ASYNC PACKET 4
| 17:53:14,426 INFO [STDOUT] RECEIVED: ASYNC PACKET 2
| 17:53:14,426 INFO [STDOUT] RECEIVED: ASYNC PACKET 3
| 17:53:14,458 INFO [STDOUT] RECEIVED: ASYNC PACKET 1
| 17:53:14,458 INFO [STDOUT] RECEIVED: ASYNC PACKET 0
| 17:53:16,426 INFO [STDOUT] RETURNING from: ASYNC PACKET 4
| 17:53:16,426 INFO [STDOUT] RETURNING from: ASYNC PACKET 2
| 17:53:16,426 INFO [STDOUT] RETURNING from: ASYNC PACKET 3
| 17:53:16,457 INFO [STDOUT] RETURNING from: ASYNC PACKET 1
| 17:53:16,457 INFO [STDOUT] RETURNING from: ASYNC PACKET 0Is there something wrong with my policy file? Why do messages get delivered "out-of-order"?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4170102#4170102
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170102
More information about the jboss-user
mailing list