All,
I am trying to get a wsdl generated which also has the <wsdl:types> tags so
my webservice consumer knows who to map my java types. I want to return a
list of Strings but no complex types or anything is created. My client
always complains about "no types in definition".
What do I have to do that the type mapping is created inside the wsdl?
Here is my spring conf:
====================
<jaxws:endpoint
id="filerouterService"
implementor="#filerouterServiceImpl"
address="http://${wsServer}:${wsPort}/filerouter" >
</jaxws:endpoint>
========================
And this is my webservice interface:
================================
@WebService(name="TestServices")
public interface FilerouterServices {
@WebMethod(operationName = "echoString", action = "urn:EchoString")
@WebResult(name = "echoResult")
String echoString( String text);
@WebMethod(operationName = "checkPortalDB", action =
"urn:checkPortalDB")
@WebResult(name = "checkPortalResult")
int checkPortalDB( String test);
@WebMethod(operationName = "uploadLicence", action =
"urn:uploadLicence")
@WebResult(name = "uploadLicenceResult")
String uploadLicence( String data);
@WebMethod(operationName = "displayLicence", action =
"urn:displayLicence")
@WebResult(name = "displayLicenceResult")
List<String> displayLicence();
}
=================================
The resulting WSDL looks like this:
===============================
<?xml version="1.0" encoding="UTF-8" ?>
- <> <wsdl:definitions name="FilerouterServices"
targetNamespace="http://impl.ws.filerouter.test/" xmlns:ns1="http://test/"
xmlns:ns2="http://schemas.xmlsoap.org/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://impl.ws.filerouter.test/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:import
location="http://localhost:9000/filerouter?wsdl=TestServices.wsdl"
namespace="http://test/" />
- <> <wsdl:binding name="FilerouterServicesSoapBinding"
type="ns1:TestServices">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
- <> <wsdl:operation name="displayLicence">
<soap:operation soapAction="urn:displayLicence" style="document" />
- <> <wsdl:input name="displayLicence">
<soap:body use="literal" />
</wsdl:input>
- <> <wsdl:output name="displayLicenceResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <> <wsdl:operation name="uploadLicence">
<soap:operation soapAction="urn:uploadLicence" style="document" />
- <> <wsdl:input name="uploadLicence">
<soap:body use="literal" />
</wsdl:input>
- <> <wsdl:output name="uploadLicenceResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <> <wsdl:operation name="echoString">
<soap:operation soapAction="urn:EchoString" style="document" />
- <> <wsdl:input name="echoString">
<soap:body use="literal" />
</wsdl:input>
- <> <wsdl:output name="echoStringResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <> <wsdl:operation name="checkPortalDB">
<soap:operation soapAction="urn:checkPortalDB" style="document" />
- <> <wsdl:input name="checkPortalDB">
<soap:body use="literal" />
</wsdl:input>
- <> <wsdl:output name="checkPortalDBResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <> <wsdl:service name="FilerouterServices">
- <> <wsdl:port binding="tns:FilerouterServicesSoapBinding"
name="FilerouterServicesImplPort">
<soap:address location="http://neelix:9000/filerouter" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
============
Thanks,
Marcus