Santoso Nugroho wrote:
> Hi Michele,
> 
> If I use the default ServiceClient, the addressing module isn't found,
> though I put the axis2 lib in the classpath.

Are you sure the classpath is set the right way?

If you use ant (I assume $AXIS2_HOME to be a system property):

<property name="axis2.lib" value="${env.AXIS2_HOME}/lib"/>

<path id="compile.class.path">
        <pathelement path="${java.class.path}" />
        <pathelement path="${core.dir}/bin"/>
        <fileset dir="${lib.dir}">
                <include name="*.jar" />
        </fileset>

        <fileset dir="${axis2.lib}">
                <include name="*.jar"/>
        </fileset>
</path>

<property name="compile.class.path" refid="compile.class.path" />
        
<target name="compile" depends="create_bin_dir" description="--> Compile
the manager module">
        <javac srcdir="${src.dir}"
                destdir="${build.dir}"
                source="1.5"
                optimize="${build.optimize}"
                deprecation="${build.deprecation}"
                debug="${build.debug}"  
        >
        <classpath refid="compile.class.path" />
                <include name="ncl/qosp/controller/**/*.java" />
        </javac>
</target>


> Then I set the System.properties with key Constants.AXIS2_REPO and the
> value is my axis2 directory, no exception is thrown but the callback is
> still not called.
> 
> Sorry, if this problem takes quite some time.
> 
> Thanks,
> 
> Santoso
> 
> 

Hope this helps,
Michele
> 
> 
> Michele Mazzucco wrote:
>> Hi Santoso,
>>
>> no, the header looks like ok. What I think is that the problems comes
>> from the call:
>>
>> ConfigurationContext configContext =
>> ConfigurationContextFactory.createConfigurationContextFromFileSystem("c:\\MyJavaStuff\\axis2",
>>
>> null);
>>
>> try to use the default constructor for ServiceClient (you'll need the
>> axis2 libs in the classpath in order to engage the addressing module)
>>
>>
>> Michele
>>
>> Santoso Nugroho wrote:
>>  
>>> Hi Michele,
>>>
>>> The soapaction is correct, and I got  AxisFault :  Invalid message
>>> addition
>>> What is meant by "Invalid Message Addition"? is it because of the
>>> headers?
>>>
>>> here are the sample soap message sent
>>> <?xml version='1.0' encoding='utf-8'?>
>>> <soapenv:Envelope
>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
>>> xmlns:wsa="http://www.w3.org/2005/08/addressing";>
>>>  <soapenv:Header>
>>>  
>>> <wsa:To>http://localhost:8081/axis2/services/AsynchWrappedService</wsa:To>
>>>
>>>    <wsa:ReplyTo>
>>>    
>>> <wsa:Address>http://192.168.1.22:6060/axis2/services/__ANONYMOUS_SERVICE__/__OPERATION_OUT_IN__</wsa:Address>
>>>
>>>
>>>    </wsa:ReplyTo>
>>>   
>>> <wsa:MessageID>urn:uuid:C3B147D7E64C6C375111564787858281</wsa:MessageID>
>>>    <wsa:Action>requestData</wsa:Action>
>>>  </soapenv:Header>
>>>  <soapenv:Body>
>>>    <ns:requestData
>>> xmlns:ns="http://www.example.org/AsynchWrappedService";>
>>>      <ns:key>hello, this is the key</ns:key>
>>>    </ns:requestData>
>>>  </soapenv:Body>
>>> </soapenv:Envelope>
>>>
>>> here are the exception i got
>>>
>>> <?xml version='1.0' encoding='utf-8'?>
>>> <soapenv:Envelope
>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>>>  <soapenv:Header />
>>>  <soapenv:Body>
>>>    <soapenv:Fault>
>>>      <faultcode>soapenv:Client</faultcode>
>>>      <faultstring>Invalid message addition , operation context
>>> completed</faultstring>
>>>      <detail>
>>>        <Exception>
>>>          org.apache.axis2.AxisFault: Invalid message addition ,
>>> operation context completed&#13;
>>>          at
>>> org.apache.axis2.description.InOnlyAxisOperation.addMessageContext(InOnlyAxisOperation.java:62)&#13;
>>>
>>>
>>>          at
>>> org.apache.axis2.context.OperationContext.addMessageContext(OperationContext.java:85)&#13;
>>>
>>>
>>>          at
>>> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:35)&#13;
>>>
>>>
>>>          at
>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:454)&#13;
>>>          at
>>> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)&#13;
>>>
>>>
>>>          at
>>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:136)&#13;
>>>
>>>
>>>          at
>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:709)&#13;
>>>          at
>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)&#13;
>>>          at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)&#13;
>>>
>>>
>>>          at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)&#13;
>>>
>>>
>>>          at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)&#13;
>>>
>>>
>>>          at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)&#13;
>>>
>>>
>>>          at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)&#13;
>>>
>>>
>>>          at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)&#13;
>>>
>>>
>>>          at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)&#13;
>>>
>>>
>>>          at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)&#13;
>>>
>>>
>>>          at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)&#13;
>>>
>>>
>>>          at
>>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)&#13;
>>>
>>>
>>>          at
>>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)&#13;
>>>
>>>
>>>          at
>>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)&#13;
>>>
>>>
>>>          at
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)&#13;
>>>
>>>
>>>          at java.lang.Thread.run(Unknown Source)&#13;
>>>        </Exception>
>>>      </detail>
>>>    </soapenv:Fault>
>>>  </soapenv:Body>
>>> </soapenv:Envelope>
>>>
>>> Thanks,
>>>
>>> Santoso
>>>
>>> Michele Mazzucco wrote:
>>>    
>>>> Hi Santoso,
>>>>
>>>> are you sure that the soap action is correct, i.e. the same declared
>>>> into services.xml? It should look like
>>>>
>>>> <operation name="requestData">
>>>>         <messageReceiver
>>>>           
>>>> class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
>>>>         <actionMapping> requestData </actionMapping>
>>>> </operation>
>>>>
>>>>
>>>> Are you sure that your service is called? Try to add some logging
>>>> statements inside your code
>>>>
>>>>
>>>> Hope this helps,
>>>> Michele
>>>>
>>>> On 24 Aug 2006, at 04:30, Santoso Nugroho wrote:
>>>>
>>>>      
>>>>> Hi Michele,
>>>>>
>>>>> I've change the return type, however the callback is still not called.
>>>>> Here is my service code :
>>>>> public OMElement requestData(OMElement element) {
>>>>>        OMElement result = buildResponse(element);
>>>>>        return result;
>>>>> }
>>>>>
>>>>> Here is my client code :
>>>>> OMElement payload = getPayload();
>>>>>        Options options = new Options();
>>>>>        options.setAction("requestData");
>>>>>        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
>>>>>        options.setUseSeparateListener(true);
>>>>>        EndpointReference epr = new
>>>>> EndpointReference("http://localhost:8081/axis2/services/AsynchWrappedService";);
>>>>>
>>>>>
>>>>>        options.setTo(epr);
>>>>>              Callback callback = new Callback() {
>>>>>            public void onComplete(AsyncResult arg0) {
>>>>>                System.out.println("completed, result =
>>>>> "+arg0.getResponseEnvelope());
>>>>>            }
>>>>>
>>>>>            public void onError(Exception arg0) {
>>>>>                arg0.printStackTrace();
>>>>>            }
>>>>>                  };
>>>>>              ServiceClient serviceClient = null;
>>>>>        try {
>>>>>            ConfigurationContext configContext =       
>>>>> ConfigurationContextFactory.createConfigurationContextFromFileSystem("c:\\MyJavaStuff\\axis2",
>>>>>
>>>>> null);
>>>>>            serviceClient = new ServiceClient(configContext,null);
>>>>>            serviceClient.engageModule(new
>>>>> QName(Constants.MODULE_ADDRESSING));
>>>>>            serviceClient.setOptions(options);
>>>>>            serviceClient.sendReceiveNonBlocking(payload, callback);
>>>>>                      while(!callback.isComplete()) {
>>>>>                Thread.sleep(1000);
>>>>>            }
>>>>>                  } catch (AxisFault e) {
>>>>>            // TODO Auto-generated catch block
>>>>>            e.printStackTrace();
>>>>>        } catch (Exception e) {
>>>>>            e.printStackTrace();
>>>>>        } finally {
>>>>>            try {
>>>>>                serviceClient.finalizeInvoke();
>>>>>            } catch (AxisFault e) {
>>>>>                // TODO Auto-generated catch block
>>>>>                e.printStackTrace();
>>>>>            }
>>>>>        }
>>>>>
>>>>> What is wrong with my code?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Santoso
>>>>>
>>>>>
>>>>> Michele Mazzucco wrote:
>>>>>        
>>>>>> Hi Santoso,
>>>>>>
>>>>>>
>>>>>> I thinks you are making a mistake: asynchronous does not mean that
>>>>>> the
>>>>>> return type is void!, it means that the client does not block
>>>>>> while the
>>>>>> request is processed.
>>>>>> The return type should then be OMElement, and the callback object
>>>>>> will
>>>>>> collect the result when this will be available.
>>>>>>
>>>>>> Regards,
>>>>>> Michele
>>>>>>
>>>>>> Santoso Nugroho wrote:
>>>>>>
>>>>>>          
>>>>>>> Hi all,
>>>>>>>
>>>>>>> I have an asynch service, which as I understand the operation method
>>>>>>> signature returns void.
>>>>>>> e.g. public void requestData(OMElement element) { ... }
>>>>>>>
>>>>>>> On the client side, I call the service using
>>>>>>> ServiceClient.sendReceiveNonBlocking(payload, callback)
>>>>>>> and I also engage the Addressing module.
>>>>>>>
>>>>>>> My question is, when requestData is processed, what is the code to
>>>>>>> return the result to the client's callback?
>>>>>>> Is it the same code as a client calling a service?
>>>>>>> fyi, I already have the ReplyTo address and the MessageID (from
>>>>>>> MessageContext).
>>>>>>>
>>>>>>>
>>>>>>> Thanks a lot,
>>>>>>>
>>>>>>> Santoso
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>>
>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>
>>>>>>>
>>>>>>>             
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>
>>>>>>
>>>>>>
>>>>>>           
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>
>>>>>         
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>>       
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>     
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>   
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to