On Monday, January 16, 2012 5:37:23 PM xuhb wrote:
> By the way, I am not sure if JAXWS specification support a RPC-Literal
> Operation whose message part point to a xsd:element, not to a xsd:type.
> Does anyone know about it ?

WS-I Basic profile, the parts in an RPC-Literal style WSDL MUST point to a 
type, not an element:

R2203 An rpc-literal binding in a DESCRIPTION MUST refer, in its soapbind:body 
element(s), only to wsdl:part element(s) that have been defined using the type 
attribute.

Thus, such a wsdl as you describe is not WS-I Basic Profile compliant and thus 
would really be outside the scope of JAX-WS and CXF (and pretty much any other 
modern toolkit).


Dan

 
> ----- Original Message ----- 
> From: "xuhb" <[email protected]>
> To: <[email protected]>
> Sent: Monday, January 16, 2012 5:17 PM
> Subject: A defect of JAXWS of RPC Literal operation which has xsd:Element
> message part?
 
> 
> 
> > Hi:
> > 
> >   
> >   CXF support RPC Literal operation which has message part point to a
> >   xsd:element;
 But it seems there is a defect;
> >  
> >  
> >  
> >   First I generate a JAXWS interface from such a wsdl, and publish the
> >   JAXWS as service; 
> 
> > 
> > 
> >   If I doesn't specifiy the origical wsdl's location and force CXF
> >   create WSDL only from JAXWS interface. then the new wsdl's message
> >   part point to a xsd:type, but not a xsd:element;
> 
> > 
> > for example:
> > 
> > Original wsdl:
> > <schema>
> > 
> >  <xs:element name="SimpleSymbol" type="xs:string" /> 
> >  <xs:element name="Symbol" type="ns:SymbolType" /> 
> > 
> > </schema>
> > 
> > 
> >  <wsdl:message name="rpcEInOutRequest">
> >  
> >    <wsdl:part name="rpcEInOutArg" element="ns:SimpleSymbol">
> >    </wsdl:part>
> >  
> >  </wsdl:message>
> >  <wsdl:message name="rpcEInOutResponse">
> >  
> >    <wsdl:part name="rpcEInOutReturn" element="ns:Symbol">
> >    </wsdl:part>
> >  
> >  </wsdl:message>
> > 
> > 
> > 
> >  <wsdl:portType name="rpcLiteralType">
> >  
> >    <wsdl:operation name="rpcEInOut">
> >    
> >      <wsdl:input message="axis2:rpcEInOutRequest">
> >    
> >    </wsdl:input>
> >    
> >      <wsdl:output message="axis2:rpcEInOutResponse">
> >    
> >    </wsdl:output>
> >    </wsdl:operation>
> >  
> >  </wsdl:portType>
> > 
> > 
> > Generate JAXWS-Interface:
> > 
> >    public interface RpcLiteralType {
> > 
> > 
> > 
> >    @WebResult(name = "rpcEInOutReturn", targetNamespace =
> >    "http://anyxml.samples/";, partName = "rpcEInOutReturn")
> >    @WebMethod
> >    public SymbolType rpcEInOut(
> >    
> >        @WebParam(partName = "rpcEInOutArg", name =
> >        "rpcEInOutArg")
> >        java.lang.String rpcEInOutArg
> >    
> >    );
> > 
> > }
> > 
> > Created WSDL from JAXWS-interface:
> > 
> > 
> >    
> >    <wsdl:message name="rpcEInOutResponse">
> >    
> >       <wsdl:part name="rpcEInOutReturn" type="ns1:SymbolType" /> 
> > 
> > </wsdl:message>
> > 
> >    <wsdl:message name="rpcEInOut">
> >    
> >          <wsdl:part name="rpcEInOutArg" type="xsd:string" /> 
> >    
> >    </wsdl:message>
> >    <wsdl:portType name="rpcLiteralType">
> >    <wsdl:operation name="rpcEInOut">
> >    
> >      <wsdl:input message="tns:rpcEInOut" name="rpcEInOut" /> 
> >   
> >   <wsdl:output message="tns:rpcEInOutResponse"
> >   name="rpcEInOutResponse" /> 
> 
> > </wsdl:operation>
> > </wsdl:portType>
> > 
> > 
> > 

-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to