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>
