[ 
https://issues.apache.org/jira/browse/CXF-1079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12531198
 ] 

maomaode commented on CXF-1079:
-------------------------------

But as per the spec 2.3.1.2

Rules No.5

The wrapper elements only contain child elements, they MUST not contain other 
structures such
as wildcards (element or attribute), xsd:choice, substitution groups (element 
references are not
permitted) or attributes; furthermore, they MUST not be nillable.


In your wsdl the info element ref the "pass:Passwort", which broken the rule 
no.5

Possibly a bug in RI?

> wsdl2java fails to genrate wrapped style
> ----------------------------------------
>
>                 Key: CXF-1079
>                 URL: https://issues.apache.org/jira/browse/CXF-1079
>             Project: CXF
>          Issue Type: Bug
>          Components: Tooling
>    Affects Versions: 2.0.2
>         Environment: cxf 2.02
>            Reporter: Ralf Sigmund
>         Attachments: barewrapped.7z
>
>
> use a wsdl conforming to the jax-ws rules for document literal wrapped style.
> wsdl2java generates BARE port type. jax-ws ri generates WRAPPED with the same 
> wsdl.
> Wsdl:
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
> xmlns:tns="http://www.kba.de/pass-service"; 
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
> xmlns:hinweis="http://www.kba.de/hinweis"; xmlns:pass="http://www.kba.de/pass"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
> targetNamespace="http://www.kba.de/pass-service";>
>       <wsdl:types>
>               <xsd:schema targetNamespace="http://www.kba.de/pass"; 
> elementFormDefault="qualified">
>                       <xsd:import namespace="http://www.kba.de/hinweis"; 
> schemaLocation="xsd/Hinweis.xsd"/>
>                       <xsd:element name="Passwort">
>                               <xsd:complexType>
>                                       <xsd:sequence>
>                                               <xsd:element name="Kennung"/>
>                                               <xsd:element name="Passwort"/>
>                                               <xsd:element name="PasswortNeu" 
> minOccurs="0"/>
>                                       </xsd:sequence>
>                               </xsd:complexType>
>                       </xsd:element>
>                       <xsd:element name="info">
>                               <xsd:complexType>
>                                       <xsd:sequence>
>                                               <xsd:element 
> ref="pass:Passwort"/>
>                                       </xsd:sequence>
>                               </xsd:complexType>
>                       </xsd:element>
>                       <xsd:element name="infoResponse">
>                               <xsd:complexType>
>                                       <xsd:sequence>
>                                               <xsd:element 
> ref="hinweis:Hinweis"/>
>                                       </xsd:sequence>
>                               </xsd:complexType>
>                       </xsd:element>
>                       <xsd:element name="passwortAenderung">
>                               <xsd:complexType>
>                                       <xsd:sequence>
>                                               <xsd:element 
> ref="pass:Passwort"/>
>                                       </xsd:sequence>
>                               </xsd:complexType>
>                       </xsd:element>
>                       <xsd:element name="passwortAenderungResponse">
>                               <xsd:complexType>
>                                       <xsd:sequence>
>                                               <xsd:element 
> ref="hinweis:Hinweis"/>
>                                       </xsd:sequence>
>                               </xsd:complexType>
>                       </xsd:element>
>               </xsd:schema>
>       </wsdl:types>
>       <wsdl:message name="Hinweis">
>               <wsdl:part name="parameters" element="hinweis:FaultHinweis"/>
>       </wsdl:message>
>       <wsdl:message name="InfoRequest">
>               <wsdl:part name="parametersInfo" element="pass:info"/>
>       </wsdl:message>
>       <wsdl:message name="InfoResponse">
>               <wsdl:part name="parametersInfoResponse" 
> element="pass:infoResponse"/>
>       </wsdl:message>
>       <wsdl:message name="PassRequest">
>               <wsdl:part name="parametersRequest" 
> element="pass:passwortAenderung"/>
>       </wsdl:message>
>       <wsdl:message name="PassResponse">
>               <wsdl:part name="parametersRequestResponse" 
> element="pass:passwortAenderungResponse"/>
>       </wsdl:message>
>       <wsdl:portType name="passPortType">
>               <wsdl:operation name="info">
>                       <wsdl:input name="infoRequest" 
> message="tns:InfoRequest"/>
>                       <wsdl:output name="infoResponse" 
> message="tns:InfoResponse"/>
>                       <wsdl:fault name="hinweis" message="tns:Hinweis"/>
>               </wsdl:operation>
>               <wsdl:operation name="passwortAenderung">
>                       <wsdl:input name="PassRequest" 
> message="tns:PassRequest"/>
>                       <wsdl:output name="PassResponse" 
> message="tns:PassResponse"/>
>                       <wsdl:fault name="hinweis" message="tns:Hinweis"/>
>               </wsdl:operation>
>       </wsdl:portType>
>       <wsdl:binding name="passSOAP" type="tns:passPortType">
>               <soap:binding style="document" 
> transport="http://schemas.xmlsoap.org/soap/http"/>
>               <wsdl:operation name="info">
>                       <soap:operation soapAction="http://www.kba.de/info"; 
> style="document"/>
>                       <wsdl:input name="infoRequest">
>                               <soap:body use="literal"/>
>                       </wsdl:input>
>                       <wsdl:output name="infoResponse">
>                               <soap:body use="literal"/>
>                       </wsdl:output>
>                       <wsdl:fault name="hinweis">
>                               <soap:fault name="hinweis" use="literal"/>
>                       </wsdl:fault>
>               </wsdl:operation>
>               <wsdl:operation name="passwortAenderung">
>                       <soap:operation 
> soapAction="http://www.kba.de/PasswortAenderung"; style="document"/>
>                       <wsdl:input name="PassRequest">
>                               <soap:body use="literal"/>
>                       </wsdl:input>
>                       <wsdl:output name="PassResponse">
>                               <soap:body use="literal"/>
>                       </wsdl:output>
>                       <wsdl:fault name="hinweis">
>                               <soap:fault name="hinweis" use="literal"/>
>                       </wsdl:fault>
>               </wsdl:operation>
>       </wsdl:binding>
>       <wsdl:service name="passService">
>               <wsdl:port name="passSOAP" binding="tns:passSOAP">
>                       <soap:address 
> location="http://localhost:8191/passService"/>
>               </wsdl:port>
>       </wsdl:service>
> </wsdl:definitions>
> cxf generated java:
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "http://www.kba.de/pass";, partName = 
> "parametersInfoResponse", name = "infoResponse")
>     @WebMethod(action = "http://www.kba.de/info";)
>     public de.kba.pass.InfoResponse info(
>         @WebParam(targetNamespace = "http://www.kba.de/pass";, partName = 
> "parametersInfo", name = "info")
>         de.kba.pass.Info parametersInfo
>     ) throws Hinweis;
> jax-ws ri generated java:
> /**
>      * 
>      * @param passwort
>      * @return
>      *     returns de.kba.hinweis.HinweisTyp
>      */
>     @WebMethod(action = "http://www.kba.de/Info";)
>     @WebResult(name = "Hinweis", targetNamespace = 
> "http://www.kba.de/hinweis";)
>     @RequestWrapper(localName = "info", targetNamespace = 
> "http://www.kba.de/pass";, className = "de.kba.pass.Info")
>     @ResponseWrapper(localName = "infoResponse", targetNamespace = 
> "http://www.kba.de/pass";, className = "de.kba.pass.InfoResponse")
>     public HinweisTyp info(
>         @WebParam(name = "Passwort", targetNamespace = 
> "http://www.kba.de/pass";)
>         Passwort passwort);

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to