<!-- wsdl bindings appear incorrect assume this namespace declaration in 
wsdl:definitions -->
<wsdl:definitions xmlns:ns="http://complex.tempuri.org";...>

<!--  then wsdl would define service posts for SOAP11point, SOAP12point and 
HttpEndpoint -->
    <wsdl:service name="ComplexDataTypes">
        <wsdl:port name="ComplexDataTypesHttpSoap11Endpoint" 
binding="ns:ComplexDataTypesSoap11Binding">
            <soap:address 
location="http://localhost:8080/axis2/services/ComplexDataTypes"/>
        </wsdl:port>
        <wsdl:port name="ComplexDataTypesHttpSoap12Endpoint" 
binding="ns:ComplexDataTypesSoap12Binding">
            <soap12:address 
location="http://localhost:8080/axis2/services/ComplexDataTypes"/>
        </wsdl:port>
        <wsdl:port name="ComplexDataTypesHttpEndpoint" 
binding="ns:ComplexDataTypesHttpBinding">
            <http:address 
location="http://localhost:8080/axis2/services/ComplexDataTypes"/>
        </wsdl:port>
    </wsdl:service>

<!-- the aforementioned ComplexDataTypesSoap11Binding binding is declared as -->
    <wsdl:binding name="ComplexDataTypesSoap11Binding" 
type="ns:ComplexDataTypesPortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
        <wsdl:operation name="retUri">
            <soap:operation soapAction="urn:retUri" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

<!-- where the aforementioned retUri Element is declared as complexType here -->
        <xs:schema xmlns:ax25="http://data.complex.tempuri.org/xsd"; 
xmlns:ax26="http://arrays.data.complex.tempuri.org/xsd"; 
attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://complex.tempuri.org";>
            <xs:import namespace="http://data.complex.tempuri.org/xsd"/>
            <xs:import namespace="http://arrays.data.complex.tempuri.org/xsd"/>
            <xs:element name="retUri">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="inUri" nillable="true" 
type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>

//payload is a OMElement which will be received by method getValue identitied 
as retUri *an array of strings* as seen here
        OMNamespace omNs = factory.createOMNamespace(
                "http://complex.tempuri.org";, "retUri");
//method name
        OMElement method = factory.createOMElement("retUri", omNs);
//value if any 
        OMElement value = factory.createOMElement("Text", omNs);
        value.addChild(factory.createOMText(value, "Test String "));
//add the value to the testUri method
        method.addChild(value);

//the QName consists of the namespace and the aforementioned retUri operation
//the second param is the OMElement payload previously constructed which 
contains the value
OMElement response = serviceClient.sendReceive(new QName("retUri"), method);

this all works wonderfully a well-formed and validated wsdl and using the 
wsdl2java utility
wsdl2java -uri *.wsdl 

Martin Gainty 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger 
sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung 
oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem 
Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. 
Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung 
fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le 
destinataire prévu, nous te demandons avec bonté que pour satisfaire informez 
l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est 
interdite. Ce message sert à l'information seulement et n'aura pas n'importe 
quel effet légalement obligatoire. Étant donné que les email peuvent facilement 
être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité 
pour le contenu fourni.




Date: Fri, 6 May 2011 13:05:44 +1000
From: [email protected]
To: [email protected]
Subject: NoSuchMethodError: 
org.apache.axis2.addressing.EndpointReference.isWSAddressingAnonymous()Z







Hi all,
 
I am trying a short sample code for Dynamic client as I was getting many errors 
with my previous post configuration context and addressing.
 
I modified my code to ;
 
public void creatClient() {
        try {
            ConfigurationContext configContext = 
ConfigurationContextFactory.createConfigurationContextFromFileSystem("C:/axis2-1.5.4/repository",
 "C:/axis2-1.5.4/conf/axis2.xml");
            Options opts = new Options();            
            ServiceClient dynamicClient = new ServiceClient(configContext, new 
URL("http://localhost:8080/axis2/services/TwoPara?wsdl";), null, null);
 
            OMElement responce = dynamicClient.sendReceive(new 
QName("http://services","getValue";),getPayload());;
            
        } catch (MalformedURLException ex) {
            
Logger.getLogger(NewServiceClient.class.getName()).log(Level.SEVERE, null, ex);
        } catch (AxisFault ex) {
            
Logger.getLogger(NewServiceClient.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
public static OMElement getPayload() {
        OMFactory fac = OMAbstractFactory.getOMFactory();
        OMNamespace omNs = fac.createOMNamespace("http://services/xsd";, "xs");
        OMElement method = fac.createOMElement("getValue", omNs);
        OMElement value1 = fac.createOMElement("n1", omNs);
        value1.setText("1000");
        method.addChild(value1);
        OMElement value2 = fac.createOMElement("n2", omNs);
        value2.setText("1000");
        method.addChild(value2);
        return method;
    }
 
However Now I am getting an Addressing Exception as below;
 
INFO: Deploying Web service: version.aar
Exception in thread "main" java.lang.NoSuchMethodError: 
org.apache.axis2.addressing.EndpointReference.isWSAddressingAnonymous()Z
        at 
org.apache.axis2.handlers.addressing.AddressingOutHandler$WSAHeaderWriter.processToEPR(AddressingOutHandler.java:422)
        at 
org.apache.axis2.handlers.addressing.AddressingOutHandler$WSAHeaderWriter.writeHeaders(AddressingOutHandler.java:214)
        at 
org.apache.axis2.handlers.addressing.AddressingOutHandler.invoke(AddressingOutHandler.java:135)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:292)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:377)
        at 
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)
        at 
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
        at 
org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
        at 
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:528)
        at axiomtryout.NewServiceClient.creatClient(NewServiceClient.java:35)
        at axiomtryout.Main.main(Main.java:35)
 
My WSDL for test service as below
 
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:axis2="http://services/"; xmlns:ns1="http://org.apache.axis2/xsd"; 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:ns0="http://services/xsd"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; 
targetNamespace="http://services/";>
    <wsdl:documentation>TwoPara</wsdl:documentation>
    <wsdl:types>
        <xs:schema xmlns:ns="http://services/xsd"; 
attributeFormDefault="qualified" elementFormDefault="qualified" 
targetNamespace="http://services/xsd";>
            <xs:element name="getValue">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="n1" type="xs:int"/>
                        <xs:element minOccurs="0" name="n2" type="xs:int"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getValueResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" 
type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="getValueRequest">
        <wsdl:part name="parameters" element="ns0:getValue"/>
    </wsdl:message>
    <wsdl:message name="getValueResponse">
        <wsdl:part name="parameters" element="ns0:getValueResponse"/>
    </wsdl:message>
    <wsdl:portType name="TwoParaPortType">
        <wsdl:operation name="getValue">
            <wsdl:input message="axis2:getValueRequest" 
wsaw:Action="urn:getValue"/>
            <wsdl:output message="axis2:getValueResponse" 
wsaw:Action="urn:getValueResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="TwoParaSOAP11Binding" type="axis2:TwoParaPortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
        <wsdl:operation name="getValue">
            <soap:operation soapAction="urn:getValue" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="TwoParaSOAP12Binding" type="axis2:TwoParaPortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
        <wsdl:operation name="getValue">
            <soap12:operation soapAction="urn:getValue" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="TwoParaHttpBinding" type="axis2:TwoParaPortType">
        <http:binding verb="POST"/>
        <wsdl:operation name="getValue">
            <http:operation location="TwoPara/getValue"/>
            <wsdl:input>
                <mime:content type="text/xml" part="getValue"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="text/xml" part="getValue"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="TwoPara">
        <wsdl:port name="TwoParaSOAP11port_http" 
binding="axis2:TwoParaSOAP11Binding">
            <soap:address 
location="http://localhost:8080/axis2/services/TwoPara.TwoParaSOAP11port_http/"/>
        </wsdl:port>
        <wsdl:port name="TwoParaSOAP12port_http" 
binding="axis2:TwoParaSOAP12Binding">
            <soap12:address 
location="http://localhost:8080/axis2/services/TwoPara.TwoParaSOAP12port_http/"/>
        </wsdl:port>
        <wsdl:port name="TwoParaHttpport" binding="axis2:TwoParaHttpBinding">
            <http:address 
location="http://localhost:8080/axis2/services/TwoPara.TwoParaHttpport/"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>                                       

Reply via email to