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
>>> at
>>> org.apache.axis2.description.InOnlyAxisOperation.addMessageContext(InOnlyAxisOperation.java:62)
>>>
>>>
>>> at
>>> org.apache.axis2.context.OperationContext.addMessageContext(OperationContext.java:85)
>>>
>>>
>>> at
>>> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:35)
>>>
>>>
>>> at
>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:454)
>>> at
>>> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
>>>
>>>
>>> at
>>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:136)
>>>
>>>
>>> at
>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>>> at
>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>
>>>
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>
>>>
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>>
>>>
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>>>
>>>
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>
>>>
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>
>>>
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>>>
>>>
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>>>
>>>
>>> at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
>>>
>>>
>>> at
>>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
>>>
>>>
>>> at
>>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>>>
>>>
>>> at
>>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>
>>>
>>> at
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>
>>>
>>> at java.lang.Thread.run(Unknown Source)
>>> </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]