[jboss-user] [JBoss Web Services Users] - WSDL generated incorrectly?

Elenthril do-not-reply at jboss.com
Thu Oct 29 02:26:47 EDT 2009


Hi,

I am using wstools from eclipse 3.5.1. and jboss-5.1.0.GA to generate a top-down webservice. It is generated from the following, I believe (syntacticly) correct, wsdl with <mime:multipartRelated> elements.


  | <?xml version="1.0" encoding="UTF-8"?>
  | <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
  | 				  xmlns:tns="http://com.lei.nl/modelAgent" 
  | 				  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
  | 				  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  | 				  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
  | 				  xmlns:lei="http://com.lei.nl/modelAgent"
  | 				  name="ModelAgentService" 
  | 				  targetNamespace="http://com.lei.nl/modelAgent">
  |   <wsdl:types>
  |     <xsd:schema xmlns:lei="http://com.lei.nl/modelAgent" targetNamespace="http://com.lei.nl/modelAgent" >
  |       <xsd:element name="ModelAgentRequest">
  |       	<xsd:complexType>
  |     		<xsd:sequence>
  | 				<xsd:element minOccurs="1" maxOccurs="1" name="modelType" type="xsd:string"/>
  |       			<xsd:element minOccurs="1" maxOccurs="1" name="modelName" type="xsd:string"/>
  |       			<xsd:element minOccurs="0" maxOccurs="unbounded" name="modelParameters" type="lei:ModelParameter"/>
  |     		</xsd:sequence>
  |  	  	</xsd:complexType>
  |  	  </xsd:element>
  |  	  <xsd:element name="ModelAgentResponse">
  |  	  	<xsd:complexType>
  |     		<xsd:sequence>
  |       			<xsd:element minOccurs="1" maxOccurs="1" name="returnCode" type="xsd:string"/>
  |     		</xsd:sequence>
  |   	  	</xsd:complexType>
  |   	  </xsd:element>	
  |   	  <xsd:complexType name="ModelParameter">
  |       	<xsd:sequence>
  |       		<xsd:element minOccurs="1" name="parameterName" type="xsd:string"/>
  | 			<xsd:element minOccurs="1" name="parameterValue" type="xsd:string"/>
  |        	</xsd:sequence>
  |   	  </xsd:complexType>
  |   	 </xsd:schema>
  |   </wsdl:types>
  |   <wsdl:message name="invokeRequestMsg">
  |     <wsdl:part name="ModelAgentRequest" element="lei:ModelAgentRequest"/>
  | 	<wsdl:part name="gdxAttachment" type="xsd:base64Binary"/>
  |   </wsdl:message>
  |   <wsdl:message name="invokeResponseMsg">
  |     <wsdl:part name="ModelAgentResponse" element="lei:ModelAgentResponse"/>
  |     <wsdl:part name="gdxAttachment" type="xsd:base64Binary"/>
  |   </wsdl:message>
  |   <wsdl:portType name="ModelAgentService">
  |     <wsdl:operation name="invoke">
  |       <wsdl:input message="tns:invokeRequestMsg" name="invokeRequestMsg"/>
  |       <wsdl:output message="tns:invokeResponseMsg" name="invokeResponseMsg"/>
  |     </wsdl:operation>
  |   </wsdl:portType>
  |   <wsdl:binding name="ModelAgentServiceSOAP" type="tns:ModelAgentService">
  |     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  |     <wsdl:operation name="invoke">
  |       <soap:operation soapAction=""/>
  |       <wsdl:input name="invokeRequestMsg">
  | 		 <mime:multipartRelated>
  | 			<mime:part>
  |         		<soap:body parts="ModelAgentRequest" use="literal"/>
  | 			</mime:part>	
  | 			<mime:part>
  |         		<mime:content part="gdxAttachment" type="application/octet-stream"/>
  | 			</mime:part>
  | 		</mime:multipartRelated>
  | 	  </wsdl:input> 
  |       <wsdl:output name="invokeResponseMsg">
  |         <mime:multipartRelated>
  | 			<mime:part>
  |         		<soap:body parts="ModelAgentResponse" use="literal"/>
  | 			</mime:part>	
  | 			<mime:part>
  |         		<mime:content part="gdxAttachment" type="application/octet-stream"/>
  | 			</mime:part>
  | 		</mime:multipartRelated>
  |       </wsdl:output>
  |     </wsdl:operation>
  |   </wsdl:binding>
  |   <wsdl:service name="ModelAgentSOAPService">
  |     <wsdl:port binding="tns:ModelAgentServiceSOAP" name="ModelAgentServiceSOAP">
  |       <soap:address location="http://localhost:9080/ModelAgentWeb/services/ModelAgentServiceSOAP"/>
  |     </wsdl:port>
  |   </wsdl:service>
  | </wsdl:definitions>
  | 

All the classes are generated coorectly. However, the wsdl published by JBoss look like this

definitions name="ModelAgentService" targetNamespace="http://com.lei.nl/modelAgent" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://com.lei.nl/modelAgent" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://modelagent.lei.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  | 	<types>
  | 		<xs:schema targetNamespace="http://com.lei.nl/modelAgent" version="1.0" xmlns:tns="http://com.lei.nl/modelAgent" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  | 			<xs:element name="ModelAgentRequest">
  | 				<xs:complexType>
  | 					<xs:sequence>
  | 						<xs:element name="modelType" type="xs:string" />
  | 						<xs:element name="modelName" type="xs:string" />
  | 						<xs:element maxOccurs="unbounded" minOccurs="0" name="modelParameters" nillable="true" type="tns:ModelParameter" />
  | 					</xs:sequence>
  | 				</xs:complexType>
  | 			</xs:element>
  | 			<xs:element name="ModelAgentResponse">
  | 				<xs:complexType>
  | 					<xs:sequence>
  | 						<xs:element name="returnCode" type="xs:string" />
  | 					</xs:sequence>
  | 				</xs:complexType>
  | 			</xs:element>
  | 			<xs:element name="gdxAttachment" nillable="true" type="xs:base64Binary" />
  | 			<xs:complexType name="ModelParameter">
  | 				<xs:sequence>
  | 					<xs:element name="parameterName" type="xs:string" />
  | 					<xs:element name="parameterValue" type="xs:string" />
  | 				</xs:sequence>
  | 			</xs:complexType>
  | 		</xs:schema>
  | 	</types>
  | 	<message name="ModelAgentService_invoke">
  | 		<part element="ns1:gdxAttachment" name="gdxAttachment" />
  | 	</message>
  | 	<message name="ModelAgentService_invokeResponse">
  | 		<part element="ns1:gdxAttachment" name="gdxAttachment" />
  | 	</message>
  | 	<portType name="ModelAgentService">
  | 		<operation name="invoke" parameterOrder="ModelAgentRequest gdxAttachment">
  | 			<input message="ns1:ModelAgentService_invoke" />
  | 			<output message="ns1:ModelAgentService_invokeResponse" />
  | 		</operation>
  | 	</portType>
  | 	<binding name="ModelAgentServiceBinding" type="ns1:ModelAgentService">
  | 		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
  | 		<operation name="invoke">
  | 			<soap:operation soapAction="" />
  | 			<input>
  | 				<soap:body use="literal" />
  | 			</input>
  | 			<output>
  | 				<soap:body use="literal" />
  | 			</output>
  | 		</operation>
  | 	</binding>
  | </definitions>
  | 

What happened here is the first parts of the request and response messages are lost, and cannot therefore not be read a client. 

Has anyone any idea what i am doing wrong?

Thnak you

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4262849#4262849

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4262849



More information about the jboss-user mailing list