You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Stadelmann Josef <jo...@axa-winterthur.ch> on 2014/11/07 10:02:55 UTC
RE: [Axis2] synchronous dual channel blocking service invocation
failed with error "Unable to engage module : addressing"
Did you engage the addressing module at the client and at the server?
The second thing is to then think about how a server can call back the proper client.
This information must go to the server on initial call and that is why addressing is needed on either side.
Josef
From: Ashish Soni [mailto:ashishsoni4u@gmail.com]
Sent: Donnerstag, 25. September 2014 17:05
To: java-user@axis.apache.org
Subject: [Axis2] synchronous dual channel blocking service invocation failed with error "Unable to engage module : addressing"
Hi,
I am trying to write "synchronous dual channel blocking service invocation." client code.
While running the code i am getting the error:
"org.apache.axis2.AxisFault: Unable to engage module : addressing
at org.apache.axis2.client.ServiceClient.engageModule(ServiceClient.java:363)
at edu.in.siemens.webservice.client.HelloWorldClient.main(HelloWorldClient.java:49)"
Ref:http://axis.apache.org/axis2/java/core/docs/userguide-samples.html
Client Code:
package edu.in.siemens.webservice.client;
import java.io.StringWriter;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLOutputFactory;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.client.async.AsyncResult;
import org.apache.axis2.client.async.AxisCallback;
import org.apache.axis2.client.async.Callback;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.MessageContext;
public class HelloWorldClient {
private static EndpointReference targetEPR = new EndpointReference(
"http://localhost:8080/axis2/services/UserGuideSampleService");
public static void main(String[] args) throws Exception {
ServiceClient client = new ServiceClient();
try {
OMFactory factory = OMAbstractFactory.getOMFactory();
OMNamespace namespace = factory.createOMNamespace(
"http://example1.org/example1", "example1");
OMElement method = factory.createOMElement("sayHello", namespace);
OMElement value = factory.createOMElement("personToGreet",
namespace);
value.addChild(factory.createOMText(value, "Ashish Soni"));
method.addChild(value);
Options options = new Options();
options.setTo(targetEPR);
options.setUseSeparateListener(true);
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
client.engageModule(Constants.MODULE_ADDRESSING);
client.setOptions(options);
OMElement result = client.sendReceive(method);
StringWriter writer = new StringWriter();
result.serialize(XMLOutputFactory.newInstance()
.createXMLStreamWriter(writer));
writer.flush();
System.out.println(writer.toString());
} catch (AxisFault axisFault) {
axisFault.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
client.cleanup();
} catch (AxisFault axisFault) {
//
}
}
}
}
Is any specific setup is required to run the client code.
--
Ashish Soni
Bangalore(Karnataka)- 560076
"A dream becomes a goal when action is taken toward its achievement."
Re: [Axis2] synchronous dual channel blocking service invocation
failed with error "Unable to engage module : addressing"
Posted by Deepal jayasinghe <de...@gmail.com>.
Make sure you have addressing module in the class path or create client
with client side repository.
Deepal
>
> Did you engage the addressing module at the client and at the server?
>
> The second thing is to then think about how a server can call back the
> proper client.
>
> This information must go to the server on initial call and that is why
> addressing is needed on either side.
>
> Josef
>
> *From:*Ashish Soni [mailto:ashishsoni4u@gmail.com]
> *Sent:* Donnerstag, 25. September 2014 17:05
> *To:* java-user@axis.apache.org
> *Subject:* [Axis2] synchronous dual channel blocking service
> invocation failed with error "Unable to engage module : addressing"
>
> Hi,
>
> I am trying to write "synchronous dual channel blocking service
> invocation." client code.
>
> While running the code i am getting the error:
> "org.apache.axis2.AxisFault: Unable to engage module : addressing
> at
> org.apache.axis2.client.ServiceClient.engageModule(ServiceClient.java:363)
> at
> edu.in.siemens.webservice.client.HelloWorldClient.main(HelloWorldClient.java:49)"
>
> _
> Ref_:http://axis.apache.org/axis2/java/core/docs/userguide-samples.html
>
> _Client Code:_
>
> package edu.in.siemens.webservice.client;
>
> import java.io.StringWriter;
>
> import javax.xml.namespace.QName;
> import javax.xml.stream.XMLOutputFactory;
>
> import org.apache.axiom.om.OMAbstractFactory;
> import org.apache.axiom.om.OMElement;
> import org.apache.axiom.om.OMFactory;
> import org.apache.axiom.om.OMNamespace;
> import org.apache.axis2.AxisFault;
> import org.apache.axis2.Constants;
> import org.apache.axis2.addressing.EndpointReference;
> import org.apache.axis2.client.Options;
> import org.apache.axis2.client.ServiceClient;
> import org.apache.axis2.client.async.AsyncResult;
> import org.apache.axis2.client.async.AxisCallback;
> import org.apache.axis2.client.async.Callback;
> import org.apache.axis2.context.ConfigurationContext;
> import org.apache.axis2.context.ConfigurationContextFactory;
> import org.apache.axis2.context.MessageContext;
>
> public class HelloWorldClient {
> private static EndpointReference targetEPR = new EndpointReference(
>
> "http://localhost:8080/axis2/services/UserGuideSampleService");
>
> public static void main(String[] args) throws Exception {
> ServiceClient client = new ServiceClient();
>
> try {
>
> OMFactory factory = OMAbstractFactory.getOMFactory();
> OMNamespace namespace = factory.createOMNamespace(
> "http://example1.org/example1", "example1");
>
> OMElement method = factory.createOMElement("sayHello",
> namespace);
> OMElement value = factory.createOMElement("personToGreet",
> namespace);
>
> value.addChild(factory.createOMText(value, "Ashish Soni"));
> method.addChild(value);
>
> Options options = new Options();
> options.setTo(targetEPR);
> options.setUseSeparateListener(true);
> options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
>
> client.engageModule(Constants.MODULE_ADDRESSING);
> client.setOptions(options);
> OMElement result = client.sendReceive(method);
>
> StringWriter writer = new StringWriter();
> result.serialize(XMLOutputFactory.newInstance()
> .createXMLStreamWriter(writer));
> writer.flush();
> System.out.println(writer.toString());
> } catch (AxisFault axisFault) {
> axisFault.printStackTrace();
> } catch (Exception ex) {
> ex.printStackTrace();
> } finally {
> try {
> client.cleanup();
> } catch (AxisFault axisFault) {
> //
> }
> }
> }
> }
>
> Is any specific setup is required to run the client code.
>
> --
> Ashish Soni
> Bangalore(Karnataka)- 560076
>
> "A dream becomes a goal when action is taken toward its achievement."
>