Hi,

I've got a problem with my sequence below. The thread never ends if I had chosen to use sandesha in a synchronous way. The TerminateSequence message was sent but the program never ends automatically. If I call this fucntion twice, first asynchronously and after that synchronously, the program ends normally. What should I do to solve this problem? (I have already tried to set the AcksToURL and the ReplyToURL but it did not work either)

Thanks,

Benjamin

private static void callOnewaySequence(int sync) throws ServiceException, MalformedURLException, RemoteException{
        String endpoint = "http://majestix:8080/axis/services/TestWebservice";
        SandeshaContext ctx = new SandeshaContext();
        if(org.apache.sandesha.Constants.SYNCHRONOUS == sync)
            ctx = new SandeshaContext(sync);
        // --------------------------- Init -------------------------//
        String operationName = "testWSOneway1";
        Service service1 = new Service();
        Call call1;
        call1 = (Call) service1.createCall();
   
        ctx.initCall(call1, endpoint,
              "urn:wsrm:"+operationName,org.apache.sandesha.Constants.ClientProperties.IN_ONLY);
      
       call1.setTargetEndpointAddress( new java.net.URL(endpoint) );
       
        call1.setOperationName(new QName("TestWebservice", operationName));
        call1.addParameter("message",
             org.apache.axis.Constants.XSD_STRING,
             javax.xml.rpc.ParameterMode.IN);
        //---------------------------- Service 1 ------------------------------- //
        call1.setOperationName(new QName("TestWebservice", "testWSOneway1"));
        Object[] paramArray1 = new Object[] {"message1 sent by callOnewaySequence"};
        call1.invoke(paramArray1);
        // ---------------------------- Service 2 ------------------------------- //
        call1.setOperationName(new QName("TestWebservice", "testWSOneway2"));
        Object[] paramArray2 = new Object[] {"message2 sent by callOnewaySequence"};
        call1.invoke(paramArray2);
        //---------------------------- Service 3 ------------------------------- //
        call1.setOperationName(new QName("TestWebservice", "testWSOneway3"));
        ctx.setLastMessage(call1);
        Object[] paramArray3 = new Object[] {"message3 sent by callOnewaySequence"};
        call1.invoke(paramArray3);
        ctx.endSequence();
}


Reply via email to