You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by xuhb <xu...@tongtech.com> on 2012/01/16 10:17:25 UTC
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>
Re: A defect of JAXWS of RPC Literal operation which has xsd:Element message part?
Posted by xuhb <xu...@tongtech.com>.
Thanks Dan.
Thanks your help;
----- Original Message -----
From: "Daniel Kulp" <dk...@apache.org>
To: <us...@cxf.apache.org>
Cc: "xuhb" <xu...@tongtech.com>
Sent: Monday, January 16, 2012 11:51 PM
Subject: Re: A defect of JAXWS of RPC Literal operation which has xsd:Element message part?
> 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" <xu...@tongtech.com>
>> To: <us...@cxf.apache.org>
>> 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
> dkulp@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
Re: A defect of JAXWS of RPC Literal operation which has xsd:Element message part?
Posted by Daniel Kulp <dk...@apache.org>.
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" <xu...@tongtech.com>
> To: <us...@cxf.apache.org>
> 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
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Re: A defect of JAXWS of RPC Literal operation which has xsd:Element message part?
Posted by xuhb <xu...@tongtech.com>.
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 ?
----- Original Message -----
From: "xuhb" <xu...@tongtech.com>
To: <us...@cxf.apache.org>
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>
>
>
>
>