Hi Kashif,

Seems like you are trying to use an older version addressing mar with Axis2. Better have the appropriate version of addressing in the modules folder.

MessageContext.getMessageInformationHeaders is a method removed some time back.

-- Chinthaka

P.S. Please prefix the subjects of all your emails related to Axis2 with [Axis2].


Kashif Saleem wrote:
Hi All,
The problem is this, when calling ServiceClient. sendReceive (OMElement), I got a following message:

       Exception in thread "main" java.lang.NoSuchMethodError: 
org.apache.axis2.context.MessageContext.getMessageInformationHeaders()Lorg/apache/axis2/addressing/MessageInformationHeaders;
        at 
org.apache.axis2.handlers.addressing.AddressingOutHandler.invoke(AddressingOutHandler.java:56)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:376)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:351)
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:441)
        at 
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:317)
        at 
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:267)
        at 
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:393)
        at 
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:326)
        at userguide.clients.TestClient.main(TestClient.java:54)

I am just wondering about the cause of it.Attached with this mail is my client.I would appreciate your help.


Kind Regards
Kashif Saleem
------------------------------------------------------------------------

/*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package userguide.clients;

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.om.OMAbstractFactory;
import org.apache.axis2.om.OMElement;
import org.apache.axis2.om.OMFactory;
import org.apache.axis2.om.OMNamespace;

import javax.xml.namespace.QName;
import javax.xml.stream.FactoryConfigurationError;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;

/**
 * This is a Client progam that accesses 'MyService' web service in Axis2 
samples
 */
public class TCPClient {

    private static String toEpr = 
"tcp://localhost:8080/axis2/services/MyService";

    public static void main(String[] args) throws AxisFault {

        Options options = new Options();
        options.setTo(new EndpointReference(toEpr));
        options.setTransportInProtocol(Constants.TRANSPORT_TCP);

        ServiceClient sender = new ServiceClient();
        sender.engageModule(new QName(Constants.MODULE_ADDRESSING));
        sender.setOptions(options);
        OMElement result = sender.sendReceive(getPayload());

        try {
            XMLStreamWriter writer = XMLOutputFactory.newInstance()
                    .createXMLStreamWriter(System.out);
            result.serialize(writer);
            writer.flush();
        } catch (XMLStreamException e) {
            e.printStackTrace();
        } catch (FactoryConfigurationError e) {
            e.printStackTrace();
        }
    }


    private static OMElement getPayload() {
        OMFactory fac = OMAbstractFactory.getOMFactory();
        OMNamespace omNs = fac.createOMNamespace(
                "tcp://localhost:8080/axis2/services/MyService", "example1");
        OMElement method = fac.createOMElement("echo", omNs);
        OMElement value = fac.createOMElement("Text", omNs);
        value.addChild(fac.createText(value, "Axis2 Echo String "));
        method.addChild(value);

        return method;
    }
}

Reply via email to