Spring dynamic web service wsdl not generating message for schema element

I have the following diagram:

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:m="http://ws.mypackage.com" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" elementFormDefault="qualified" targetNamespace="http://ws.mypackage.com" attributeFormDefault="unqualified"> <xs:element name="downloadMessageRequestSaaj"> <xs:complexType/> </xs:element> <xs:element name="downloadMessageRequest"> <xs:complexType/> </xs:element> <xs:element name="downloadMessageResponseSaaj" type="m:downloadResponseSaajType" /> <xs:complexType name="downloadResponseSaajType"> <xs:sequence> <xs:element name="requestName" type="xs:string"/> <xs:element name="payLoad"> <xs:complexType> <xs:sequence> <xs:element name="messagePayLoad" type="xs:base64Binary" xmime:expectedContentTypes="multipart/related"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="downloadMessageResponse" type="m:downloadResponseType" /> <xs:complexType name="downloadResponseType"> <xs:sequence> <xs:element name="requestName" type="xs:string"/> <xs:element name="payLoad"> <xs:complexType> <xs:sequence> <xs:element name="messagePayLoad" type="xs:base64Binary" xmime:expectedContentTypes="multipart/related"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="localDTMRequest"> <xs:complexType/> </xs:element> <xs:element name="localDTMResponse"> <xs:complexType> <xs:sequence> <xs:element name="localDTM" type="xs:dateTime"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 

And configured Spring to automatically create the WSDL file, as shown below:

 <ws:dynamic-wsdl id="serviceDefinition" portTypeName="myService" locationUri="http://localhost:8080/springWsTest/webservice"> <ws:xsd location="/WEB-INF/schemas/schema.xsd" /> </ws:dynamic-wsdl> 

There are no β€œmessages” in the generated WSDL file for downloading MessageRequestSaaj and downloadMessageResponseSaaj. Why is this?

Here is the generated wsdl file ..

 <?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch="http://ws.mypackage.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.mypackage.com" targetNamespace="http://ws.mypackage.com"> <wsdl:types> <xs:schema xmlns:m="http://ws.mypackage.com" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://ws.mypackage.com"> <xs:element name="downloadMessageRequestSaaj"> <xs:complexType/> </xs:element> <xs:element name="downloadMessageRequest"> <xs:complexType/> </xs:element> <xs:element name="downloadMessageResponseSaaj" type="m:downloadResponseSaajType"/> <xs:complexType name="downloadResponseSaajType"> <xs:sequence> <xs:element name="requestName" type="xs:string"/> <xs:element name="payLoad"> <xs:complexType> <xs:sequence> <xs:element name="messagePayLoad" type="xs:base64Binary" xmime:expectedContentTypes="multipart/related"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="downloadMessageResponse" type="m:downloadResponseType"/> <xs:complexType name="downloadResponseType"> <xs:sequence> <xs:element name="requestName" type="xs:string"/> <xs:element name="payLoad"> <xs:complexType> <xs:sequence> <xs:element name="messagePayLoad" type="xs:base64Binary" xmime:expectedContentTypes="multipart/related"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="localDTMRequest"> <xs:complexType/> </xs:element> <xs:element name="localDTMResponse"> <xs:complexType> <xs:sequence> <xs:element name="localDTM" type="xs:dateTime"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </wsdl:types> <wsdl:message name="localDTMRequest"> <wsdl:part element="tns:localDTMRequest" name="localDTMRequest"> </wsdl:part> </wsdl:message> <wsdl:message name="localDTMResponse"> <wsdl:part element="tns:localDTMResponse" name="localDTMResponse"> </wsdl:part> </wsdl:message> <wsdl:message name="downloadMessageRequest"> <wsdl:part element="tns:downloadMessageRequest" name="downloadMessageRequest"> </wsdl:part> </wsdl:message> <wsdl:message name="downloadMessageResponse"> <wsdl:part element="tns:downloadMessageResponse" name="downloadMessageResponse"> </wsdl:part> </wsdl:message> <wsdl:portType name="myService"> <wsdl:operation name="localDTM"> <wsdl:input message="tns:localDTMRequest" name="localDTMRequest"> </wsdl:input> <wsdl:output message="tns:localDTMResponse" name="localDTMResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="downloadMessage"> <wsdl:input message="tns:downloadMessageRequest" name="downloadMessageRequest"> </wsdl:input> <wsdl:output message="tns:downloadMessageResponse" name="downloadMessageResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="myServiceSoap11" type="tns:myService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="localDTM"> <soap:operation soapAction=""/> <wsdl:input name="localDTMRequest"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="localDTMResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="downloadMessage"> <soap:operation soapAction=""/> <wsdl:input name="downloadMessageRequest"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="downloadMessageResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="myServiceService"> <wsdl:port binding="tns:myServiceSoap11" name="myServiceSoap11"> <soap:address location="http://localhost:8080/springWsTest/webservice"/> </wsdl:port> </wsdl:service> </wsdl:definitions> 

I looked at the schema file a million times and just can't see the difference between the generated messages and those that are not. Can you understand why they are not?

+1
source share
1 answer

This is because of the name. Spring uses the convention that messages are called SomethingRequest and SomethingResponse replies.

+9
source

All Articles