You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Neil P. Tomlinson" <ne...@edp.fastfreenet.com> on 2004/11/17 17:53:01 UTC
document literal and complex types
Hi am new'ish to axis, I have been using it without much configuring up
until now.
I have a nice class which i want to use as a front to a webservice. I also
have some classes which I like to pass to and from this service
We have been using straight RPC style service which needs very little
configuring but now we have a problem when passing null parameters and so
have decided to change to a document literal style service. I have used
java2wsdl to create the correct wsdl for me. My problem is the next step.
Wsdl2java has created a service class which it wants me to fill in the
implementations for... fine well i'll just change the .wsdd created by the
tool to point at my ready rolled implementation class, ahh but there is also
the class which i pass to and from the service which wsdl2java has made a
mirror of and stuck some information in (such as TypeDef stuff).. Fine i'll
just drag this extra info into my implementation. This works, but seems
like a very delicate way of doing things.
I wondered if I was just being silly and haven't found the way to put all
this information into the .wsdd yet, perhaps in the type mapping element??
I'll expose my wsdl if it helps.
Thanks Neil
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://edp.com"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://edp.com" xmlns:intf="http://edp.com"
xmlns:tns1="urn:TestService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.2RC1
Built on Sep 29, 2004 (08:29:40 EDT)-->
<wsdl:types>
<schema elementFormDefault="qualified" targetNamespace="http://edp.com"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="urn:TestService"/>
<element name="getStrings">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
<element name="in2" type="xsd:string"/>
<element name="in3" type="xsd:string"/>
<element name="in4" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getStringsResponse">
<complexType>
<sequence>
<element name="getStringsReturn" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getStringWrappers">
<complexType>
<sequence>
<element name="in0" type="tns1:StringWrapper"/>
<element name="in1" type="tns1:StringWrapper"/>
<element name="in2" type="tns1:StringWrapper"/>
<element name="in3" type="tns1:StringWrapper"/>
<element name="in4" type="tns1:StringWrapper"/>
</sequence>
</complexType>
</element>
<element name="getStringWrappersResponse">
<complexType>
<sequence>
<element name="getStringWrappersReturn" type="tns1:StringWrapper"/>
</sequence>
</complexType>
</element>
</schema>
<schema elementFormDefault="qualified" targetNamespace="urn:TestService"
xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="StringWrapper">
<sequence>
<element name="string" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="getStringsResponse">
<wsdl:part element="impl:getStringsResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getStringsRequest">
<wsdl:part element="impl:getStrings" name="parameters"/>
</wsdl:message>
<wsdl:message name="getStringWrappersRequest">
<wsdl:part element="impl:getStringWrappers" name="parameters"/>
</wsdl:message>
<wsdl:message name="getStringWrappersResponse">
<wsdl:part element="impl:getStringWrappersResponse"
name="parameters"/>
</wsdl:message>
<wsdl:portType name="FiveStrings">
<wsdl:operation name="getStrings">
<wsdl:input message="impl:getStringsRequest"
name="getStringsRequest"/>
<wsdl:output message="impl:getStringsResponse"
name="getStringsResponse"/>
</wsdl:operation>
<wsdl:operation name="getStringWrappers">
<wsdl:input message="impl:getStringWrappersRequest"
name="getStringWrappersRequest"/>
<wsdl:output message="impl:getStringWrappersResponse"
name="getStringWrappersResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="FiveStringsSoapBinding" type="impl:FiveStrings">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getStrings">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getStringsRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getStringsResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getStringWrappers">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getStringWrappersRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getStringWrappersResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="FiveStringsService">
<wsdl:port binding="impl:FiveStringsSoapBinding" name="FiveStrings">
<wsdlsoap:address
location="http://localhost:8080/my_services/services/FiveStrings"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>