Dear ALL!

There is trivial sample code which is not running in some reason. Please point me where is a bug.
Application should retrieve WSDL by URL and call method from that WS.
Code snippet:

import java.net.URL;
import javax.xml.namespace.QName;
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.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.engine.AxisConfiguration;

public class Client {
   public static void main(String[] argv) {
       try {
           ServiceClient client = new ServiceClient(
                   null,
new URL("http://127.0.0.1:8080/axis2/services/MyService?wsdl";),
                   new QName("http://example1.userguide";, "MyService"),
                   "MyServiceHttpport"
                   );
           OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://example1.userguide";, "ns1");
           OMElement method = fac.createOMElement("echo", omNs);
           OMElement value = fac.createOMElement("value", omNs);
           value.setText("Hello , my first service utilization");
           method.addChild(value);
           OMElement result = client.sendReceive(method);
           System.out.println(result);
       } catch (Throwable th) {
           th.printStackTrace();
       }
   }
}

Unfortunately it throws runtime error:

2007-11-20 13:43:02,632 ERROR org.apache.axis2.description.WSDL11ToAxisServiceBuilder - RPC-literal type message part parameters should have a type attribute org.apache.axis2.description.WSDL11ToAxisServiceBuilder$WSDLProcessingException: RPC-literal type message part parameters should have a type attribute at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addPartToElement(WSDL11ToAxisServiceBuilder.java:1992) at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.getNewComplextType(WSDL11ToAxisServiceBuilder.java:1879) at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.createSchemaForPorttype(WSDL11ToAxisServiceBuilder.java:1544) at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.generateWrapperSchema(WSDL11ToAxisServiceBuilder.java:1431) at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateService(WSDL11ToAxisServiceBuilder.java:255) at org.apache.axis2.description.AxisService.createClientSideAxisService(AxisService.java:1644) at org.apache.axis2.description.AxisService.createClientSideAxisService(AxisService.java:1608)
   at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:215)
   at com.fizzback.qa.gates.fake.Client.main(Client.java:56)
... etc.

It is strange for me because similar sample code from inet source is working correctly:
   ...
EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/MyService";);
   OMElement payload = getEchoOMElement();
   Options options = new Options();
   options.setTo(targetEPR);
   options.setAction("urn:echo");
   ServiceClient sender = new ServiceClient();
   sender.setOptions(options);
   OMElement result = sender.sendReceive(payload);
   ...

A WSDL for test service is as follow:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 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://example1.userguide"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; targetNamespace="http://example1.userguide";>
   <wsdl:documentation>MyService</wsdl:documentation>
   <wsdl:types>
       <xs:schema xmlns:ns="http://example1.userguide"; attributeFormDefault="qualified" 
elementFormDefault="qualified" targetNamespace="http://example1.userguide";>
           <xs:complexType name="Exception">
               <xs:sequence>
                   <xs:element minOccurs="0" name="Exception" nillable="true" 
type="xs:anyType"/>
               </xs:sequence>

           </xs:complexType>
           <xs:element name="XMLStreamException">
               <xs:complexType>
                   <xs:sequence>
                       <xs:element minOccurs="0" name="XMLStreamException" nillable="true" 
type="xs:anyType"/>
                   </xs:sequence>
               </xs:complexType>
           </xs:element>
           <xs:element name="echo">

               <xs:complexType>
                   <xs:sequence>
                       <xs:element minOccurs="0" name="echo" nillable="true" 
type="xs:anyType"/>
                   </xs:sequence>
               </xs:complexType>
           </xs:element>
           <xs:element name="echoResponse">
               <xs:complexType>
                   <xs:sequence>

                       <xs:element minOccurs="0" name="return" nillable="true" 
type="xs:anyType"/>
                   </xs:sequence>
               </xs:complexType>
           </xs:element>
           <xs:element name="ping">
               <xs:complexType>
                   <xs:sequence>
                       <xs:element minOccurs="0" name="ping" nillable="true" 
type="xs:anyType"/>
                   </xs:sequence>

               </xs:complexType>
           </xs:element>
           <xs:element name="pingF">
               <xs:complexType>
                   <xs:sequence>
                       <xs:element minOccurs="0" name="param0" nillable="true" 
type="xs:anyType"/>
                   </xs:sequence>
               </xs:complexType>
           </xs:element>

       </xs:schema>
   </wsdl:types>
   <wsdl:message name="pingFRequest">
       <wsdl:part name="parameters" element="ns0:pingF"/>
   </wsdl:message>
   <wsdl:message name="pingFResponse"/>
   <wsdl:message name="echoRequest">
       <wsdl:part name="parameters" element="ns0:echo"/>
   </wsdl:message>

   <wsdl:message name="echoResponse">
       <wsdl:part name="parameters" element="ns0:echoResponse"/>
   </wsdl:message>
   <wsdl:message name="XMLStreamException">
       <wsdl:part name="parameters" element="ns0:XMLStreamException"/>
   </wsdl:message>
   <wsdl:message name="pingRequest">
       <wsdl:part name="parameters" element="ns0:ping"/>
   </wsdl:message>

   <wsdl:message name="pingResponse"/>
   <wsdl:portType name="MyServicePortType">
       <wsdl:operation name="pingF">
           <wsdl:input message="ns0:pingFRequest" wsaw:Action="urn:pingF"/>
           <wsdl:output message="ns0:pingFResponse" 
wsaw:Action="urn:pingFResponse"/>
       </wsdl:operation>
       <wsdl:operation name="echo">
           <wsdl:input message="ns0:echoRequest" wsaw:Action="urn:echo"/>
           <wsdl:output message="ns0:echoResponse" 
wsaw:Action="urn:echoResponse"/>

           <wsdl:fault message="ns0:XMLStreamException" name="XMLStreamException" 
wsaw:Action="urn:echoXMLStreamException"/>
       </wsdl:operation>
       <wsdl:operation name="ping">
           <wsdl:input message="ns0:pingRequest" wsaw:Action="urn:ping"/>
           <wsdl:output message="ns0:pingResponse" 
wsaw:Action="urn:pingResponse"/>
           <wsdl:fault message="ns0:XMLStreamException" name="XMLStreamException" 
wsaw:Action="urn:pingXMLStreamException"/>
       </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="MyServiceSOAP11Binding" type="ns0:MyServicePortType">

       <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
       <wsdl:operation name="pingF">
           <soap:operation soapAction="urn:pingF" style="document"/>
           <wsdl:input>
               <soap:body use="literal"/>
           </wsdl:input>
           <wsdl:output>
               <soap:body use="literal"/>
           </wsdl:output>

       </wsdl:operation>
       <wsdl:operation name="echo">
           <soap:operation soapAction="urn:echo" style="document"/>
           <wsdl:input>
               <soap:body use="literal"/>
           </wsdl:input>
           <wsdl:output>
               <soap:body use="literal"/>
           </wsdl:output>

           <wsdl:fault name="XMLStreamException">
               <soap:fault use="literal" name="XMLStreamException"/>
           </wsdl:fault>
       </wsdl:operation>
       <wsdl:operation name="ping">
           <soap:operation soapAction="urn:ping" style="document"/>
           <wsdl:input>
               <soap:body use="literal"/>
           </wsdl:input>

           <wsdl:output>
               <soap:body use="literal"/>
           </wsdl:output>
           <wsdl:fault name="XMLStreamException">
               <soap:fault use="literal" name="XMLStreamException"/>
           </wsdl:fault>
       </wsdl:operation>
   </wsdl:binding>
   <wsdl:binding name="MyServiceSOAP12Binding" type="ns0:MyServicePortType">

       <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
       <wsdl:operation name="pingF">
           <soap12:operation soapAction="urn:pingF" style="document"/>
           <wsdl:input>
               <soap12:body use="literal"/>
           </wsdl:input>
           <wsdl:output>
               <soap12:body use="literal"/>
           </wsdl:output>

       </wsdl:operation>
       <wsdl:operation name="echo">
           <soap12:operation soapAction="urn:echo" style="document"/>
           <wsdl:input>
               <soap12:body use="literal"/>
           </wsdl:input>
           <wsdl:output>
               <soap12:body use="literal"/>
           </wsdl:output>

           <wsdl:fault name="XMLStreamException">
               <soap12:fault use="literal" name="XMLStreamException"/>
           </wsdl:fault>
       </wsdl:operation>
       <wsdl:operation name="ping">
           <soap12:operation soapAction="urn:ping" style="document"/>
           <wsdl:input>
               <soap12:body use="literal"/>
           </wsdl:input>

           <wsdl:output>
               <soap12:body use="literal"/>
           </wsdl:output>
           <wsdl:fault name="XMLStreamException">
               <soap12:fault use="literal" name="XMLStreamException"/>
           </wsdl:fault>
       </wsdl:operation>
   </wsdl:binding>
   <wsdl:binding name="MyServiceHttpBinding" type="ns0:MyServicePortType">

       <http:binding verb="POST"/>
       <wsdl:operation name="pingF">
           <http:operation location="MyService/pingF"/>
           <wsdl:input>
               <mime:content type="text/xml" part="pingF"/>
           </wsdl:input>
       </wsdl:operation>
       <wsdl:operation name="echo">
           <http:operation location="MyService/echo"/>

           <wsdl:input>
               <mime:content type="text/xml" part="echo"/>
           </wsdl:input>
           <wsdl:output>
               <mime:content type="text/xml" part="echo"/>
           </wsdl:output>
       </wsdl:operation>
       <wsdl:operation name="ping">
           <http:operation location="MyService/ping"/>

           <wsdl:input>
               <mime:content type="text/xml" part="ping"/>
           </wsdl:input>
           <wsdl:output>
               <mime:content type="text/xml" part="ping"/>
           </wsdl:output>
       </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="MyService">

       <wsdl:port name="MyServiceSOAP11port_http" 
binding="ns0:MyServiceSOAP11Binding">
           <soap:address 
location="http://127.0.0.1:8080/axis2/services/MyService"/>
       </wsdl:port>
       <wsdl:port name="MyServiceSOAP12port_http" 
binding="ns0:MyServiceSOAP12Binding">
           <soap12:address 
location="http://127.0.0.1:8080/axis2/services/MyService"/>
       </wsdl:port>
       <wsdl:port name="MyServiceHttpport" binding="ns0:MyServiceHttpBinding">
           <http:address 
location="http://127.0.0.1:8080/axis2/services/MyService"/>
       </wsdl:port>

   </wsdl:service>
</wsdl:definitions>


If you have seen some mistake in my code please tell me. Thanks in advance.

Dima.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to