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:ashishson...@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."


Reply via email to