Do you have the link to the document you are quoting? I am reading the Basic Profile (http://www.ws-i.org/Profiles/BasicProfile-1_2(WGAD).html) and can't really find what you are mentioning.
Thanks, Ben -----Original Message----- From: Daniel Kulp [mailto:[EMAIL PROTECTED] Sent: 24 January 2008 16:09 To: [email protected] Cc: Benjamin Coiffe Subject: Re: [Dynamic Client, TypeClassInitializer, Wrapped operation] problem According to the JAXWS spec, wrapper types are NOT allowed to contain wildcards. The xs:any is considered a wildcard. Thus, it's not unwrappable. That said, wsld2java is still broken for this case as it's generating a void return instead of a GetApprovedTermsResponse return . That's really not good. Off to log a bug for that. Dan On Thursday 24 January 2008, Benjamin Coiffe wrote: > Hi, > > > > The WSDL pasted at the end of this email contains two methods: > getApprovedTerms, verifyTerm. There signatures are very close, yet, > verifyItem is wrappable and getApprovedTerms isn't...Can somebody > please explain me why? > > I am working with CXF 2.0.1 patched. I did update TypeClassSerializer > to fix a couple of bugs. > > When I execute this code: > > > > DynamicClientFactory dynamicClientFactory = > DynamicClientFactory.newInstance(bus); > > Client client = dynamicClientFactory.createClient(wsdl); > > ServiceInfo model = > client.getEndpoint().getService().getServiceInfos().get(0); > > InterfaceInfo interfaceInfo = model.getInterface(); > > Collection<OperationInfo> operationInfos = > interfaceInfo.getOperations(); > > for(OperationInfo operationInfo:operationInfos){ > > MessageInfo outputMessageInfo = operationInfo.getInput(); > > Map<QName,MessagePartInfo> map = > outputMessageInfo.getMessagePartsMap(); > > for(Entry<QName,MessagePartInfo> entry : map.entrySet()){ > > MessagePartInfo messagePartInfo = entry.getValue(); > > if(messagePartInfo.getTypeClass() == null){ > > throw new Exception("Should not happened!!") > > } > > } > > } > > } > > > > The Exception is unfortunately thrown:-( and should not be. I tried to > find a way to fix it myself but I am running out of ideas! > > My patched TypeClassInitializer is the latest code from the source > repository. > > > > Any Help would be really appreciated. > > Thanks, > > > > BEnjamin > > > > > > <?xml version='1.0' encoding='UTF-8'?> > > <definitions name="cvServiceDefinitions" > targetNamespace="http://sii.gri.roche.com" > xmlns="http://schemas.xmlsoap.org/wsdl/" > xmlns:s0="http://sii.gri.roche.com" > xmlns:s1="http://schemas.xmlsoap.org/wsdl/soap/"> > > <types> > > <xs:schema attributeFormDefault="unqualified" > elementFormDefault="qualified" > targetNamespace="http://sii.gri.roche.com" > xmlns:s0="http://sii.gri.roche.com" > xmlns:s1="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xs="http://www.w3.org/2001/XMLSchema"> > > <xs:element name="getApprovedTerms"> > > <xs:complexType> > > <xs:sequence> > > <xs:element name="domainName" type="xs:string"/> > > <xs:element name="appName" type="xs:string"/> > > <xs:element name="viewName" type="xs:string"/> > > </xs:sequence> > > </xs:complexType> > > </xs:element> > > <xs:element name="getApprovedTermsResponse"> > > <xs:complexType> > > <xs:sequence> > > <xs:any/> > > </xs:sequence> > > </xs:complexType> > > </xs:element> > > <xs:element name="verifyTerm"> > > <xs:complexType> > > <xs:sequence> > > <xs:element name="domainName" type="xs:string"/> > > <xs:element name="termName" type="xs:string"/> > > <xs:element name="appName" type="xs:string"/> > > <xs:element name="viewName" type="xs:string"/> > > </xs:sequence> > > </xs:complexType> > > </xs:element> > > <xs:element name="verifyTermResponse"> > > <xs:complexType> > > <xs:sequence> > > <xs:element name="ReturnVerifyTerm" type="xs:boolean"/> > > </xs:sequence> > > </xs:complexType> > > </xs:element> > > </xs:schema> > > > > </types> > > <message name="verifyTerm"> > > <part element="s0:verifyTerm" name="parameters"/> > > </message> > > <message name="verifyTermResponse"> > > <part element="s0:verifyTermResponse" name="parameters"/> > > </message> > > <message name="getApprovedTerms"> > > <part element="s0:getApprovedTerms" name="parameters"/> > > </message> > > <message name="getApprovedTermsResponse"> > > <part element="s0:getApprovedTermsResponse" name="parameters"/> > > </message> > > <portType name="cvPortType"> > > > > <operation name="getApprovedTerms" parameterOrder="parameters"> > > <input message="s0:getApprovedTerms"/> > > <output message="s0:getApprovedTermsResponse"/> > > </operation> > > <operation name="verifyTerm" parameterOrder="parameters"> > > <input message="s0:verifyTerm"/> > > <output message="s0:verifyTermResponse"/> > > </operation> > > </portType> > > <binding name="cvServiceSoapBinding" type="s0:cvPortType"> > > <s1:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > > <operation name="getApprovedTerms"> > > <s1:operation soapAction="" style="document"/> > > <input> > > <s1:body parts="parameters" use="literal"/> > > </input> > > <output> > > <s1:body parts="parameters" use="literal"/> > > </output> > > </operation> > > <operation name="verifyTerm"> > > <s1:operation soapAction="" style="document"/> > > <input> > > <s1:body parts="parameters" use="literal"/> > > </input> > > <output> > > <s1:body parts="parameters" use="literal"/> > > </output> > > </operation> > > </binding> > > <service name="cvService"> > > <port binding="s0:cvServiceSoapBinding" name="cvPortTypeSoapPort"> > > <!--<s1:address > location="http://rnuuspr12.tot.roche.com:8080/cv/cvService"/>--> > > <s1:address location="http://localhost:9000"/> > > </port> > > </service> > > </definitions> -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
