We have been trying to deploy a very simple web service using AXIS2 -
and obviously

we are missing something.

 

AXIS2 is up and running; TOMCAT running; and we have deployed a
Calculator service

and 4 other trivial services. Now we want to create a service that uses

OMElement.  Our service code is:

 

 

 

import org.apache.axiom.om.OMElement;

public class OMTest {

    public OMTest()

    {

    }

    public OMElement echofoo(OMElement in)

    {

        return in;

    }

}

 

Note the "in"  parameter for the method echofoo.

 

 

The services.xml file is as follows:

<service name="OMTest">

    <description>

        All I ask is that OMElements just work!

    </description>

    <parameter name="ServiceClass" locked="false">OMTest</parameter>

    <operation name="echofoo">

        <messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>

        <actionMapping>urn:echo</actionMapping>

    </operation>

</service>

 

 

The auto-generated wsdl from AXIS2 (obtained by going to
servicename?wsdl address)

is as shown at the end of this message.  My two questions are:

1) Why don't I see an XML element named "in" as defined in the service
code?

2) How can I make "in" appear as an input parameter in the wsdl?

 

 

<wsdl:definitions xmlns:axis2="http://ws.apache.org/axis2";
xmlns:ns1="http://org.apache.axis2/xsd";
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:ns0="http://ws.apache.org/axis2/xsd";

                  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://ws.apache.org/axis2";>

            <wsdl:documentation>OMTest</wsdl:documentation>

            <wsdl:types>

                        <xs:schema
xmlns:ns="http://ws.apache.org/axis2/xsd";
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://ws.apache.org/axis2/xsd";>

                                    <xs:element name="echofoo">

                                                <xs:complexType>

 
<xs:sequence>

 
<xs:element name="echofoo" nillable="true" type="xs:anyType"/>

 
</xs:sequence>

                                                </xs:complexType>

                                    </xs:element>

                                    <xs:element name="echofooResponse">

                                                <xs:complexType>

 
<xs:sequence>

 
<xs:element name="return" nillable="true" type="xs:anyType"/>

 
</xs:sequence>

                                                </xs:complexType>

                                    </xs:element>

                        </xs:schema>

            </wsdl:types>

            <wsdl:message name="echofooMessage">

                        <wsdl:part name="part1" element="ns0:echofoo"/>

            </wsdl:message>

            <wsdl:message name="echofooResponse">

                        <wsdl:part name="part1"
element="ns0:echofooResponse"/>

            </wsdl:message>

            <wsdl:portType name="OMTestPortType">

                        <wsdl:operation name="echofoo">

                                    <wsdl:input
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
message="axis2:echofooMessage" wsaw:Action="urn:echofoo"/>

                                    <wsdl:output
message="axis2:echofooResponse"/>

                        </wsdl:operation>

            </wsdl:portType>

            <wsdl:binding name="OMTestSOAP11Binding"
type="axis2:OMTestPortType">

                        <soap:binding
transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>

                        <wsdl:operation name="echofoo">

                                    <soap:operation
soapAction="urn:echofoo" 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="OMTestSOAP12Binding"
type="axis2:OMTestPortType">

                        <soap12:binding
transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>

                        <wsdl:operation name="echofoo">

                                    <soap12:operation
soapAction="urn:echofoo" 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="OMTestHttpBinding"
type="axis2:OMTestPortType">

                        <http:binding verb="POST"/>

                        <wsdl:operation name="echofoo">

                                    <http:operation location="echofoo"/>

                                    <wsdl:input>

                                                <mime:content
type="text/xml"/>

                                    </wsdl:input>

                                    <wsdl:output>

                                                <mime:content
type="text/xml"/>

                                    </wsdl:output>

                        </wsdl:operation>

            </wsdl:binding>

            <wsdl:service name="OMTest">

                        <wsdl:port name="OMTestSOAP11port_http"
binding="axis2:OMTestSOAP11Binding">

                                    <soap:address
location="http://131.136.21.245:8080/axis2/services/OMTest"/>

                        </wsdl:port>

                        <wsdl:port name="OMTestSOAP12port_http"
binding="axis2:OMTestSOAP12Binding">

                                    <soap12:address
location="http://131.136.21.245:8080/axis2/services/OMTest"/>

                        </wsdl:port>

                        <wsdl:port name="OMTestHttpport"
binding="axis2:OMTestHttpBinding">

                                    <http:address
location="http://131.136.21.245:8080/axis2/services/OMTest"/>

                        </wsdl:port>

            </wsdl:service>

</wsdl:definitions>

 

Reply via email to