axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christophe Noel <Christophe.N...@spacebel.be>
Subject RE: ServiceClient behind an Axis Service
Date Fri, 08 Jul 2011 08:32:25 GMT
Dear all,

I solved my Axis problem.


The  listening endpoint automatically created by Axis was not correct.



When using a ServiceClient (itself behind an Axis Service), the reply-to endpoint should point
to the application (which manage the ServiceClient) and a servlet-mapping should map the endpoint
to AxisServlet.



In my case, the endpoint automatically created by ServiceClient didn't point to any existing
application (it was http://host/axis2/... But there is no axis2 application).

In order to solve the problem  I simply added the following line to my asynchronous service
client :



options.setReplyTo(new EndpointReference("http://"+java.net.InetAddress.getLocalHost().getHostAddress()+"/myapplication/services/myCallback"));



(There is already a servlet-mapping for "myapplication/services/*" to AxisServlet).



I hope it helps.



Christophe Noël

SPACEBEL.


From: Christophe Noel [mailto:Christophe.Noel@spacebel.be]
Sent: jeudi 7 juillet 2011 10:23
To: java-user@axis.apache.org
Subject: ServiceClient behind an Axis Service

Dear all,

I'm using the Axis2 ServiceClient in order to send a non-blocking request using "separate
listeners".

The ServiceClient is used by a thread behind a Axis Web Service. My code works fine as a single
application, but, when behind the Axis Service, I cannot receive the Callback.
The possible problem may come from the fact that the ServiceClient creates a listener precisely
on the port used by the WPS, and thus, I suppose that the Axis Service (or web.xml) should
"forward" the request to the right listener, but I don't know how.

Any help is very welcome.

Note that Axis2 is embedded into an existing application (http://www.developer.com/services/article.php/3777111/Embedding-Apache-Axis2-into-Existing-Applications.htm).

Thanks,

Christophe.

Code used :
                                                setExecuteClient(new ServiceClient()) ;
Options options = new Options();
                  // set the workflow endpoint
                  options.setTo(new EndpointReference(processesPrefix+algorithmID));
                  options.setUseSeparateListener(true);
                  options.setAction("urn:executeResponseCallback");
                  options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
                  // use WS-Adressing (to perform asynchronous request)
                  getExecuteClient().engageModule("addressing");
                  getExecuteClient().setOptions(options);
                  // get the callback manager
                  CallbackManager callback = new CallbackManager(this);
                  // send the request
                  // Following doesnt work
                  LOGGER.info(((Document)doc.getDomNode()).getDocumentElement());
                  getExecuteClient().sendReceiveNonBlocking(XMLUtils.toOM( ((Document)doc.getDomNode()).getDocumentElement()),
callback);
                  waitCallback();


- -----------------------------------------------------------------------------

E-MAIL DISCLAIMER

The present message may contain confidential and/or legally privileged information. If you
are not the intended addressee and in case of a transmission error, please notify the sender
immediately and destroy this E-mail. Disclosure, reproduction or distribution of this document
and its possible attachments is strictly forbidden.

SPACEBEL denies all liability for incomplete, improper, inaccurate, intercepted, (partly)
destroyed, lost and/or belated transmission of the current information given that unencrypted
electronic transmission cannot currently be guaranteed to be secure or error free.
Upon request or in conformity with formal, contractual agreements, an originally signed hard
copy will be sent to you to confirm the information contained in this E-mail.

SPACEBEL denies all liability where E-mail is used for private use.

SPACEBEL cannot be held responsible for possible viruses that might corrupt this message and/or
your computer system.
e ------------------------------------------------------------------------------

Mime
View raw message