Fyi, it fails to find the class for
{http://sii.gri.roche.com}:verifyTerm although it was generated. I
believe the bug here is that the operation is not Wrappable but can
somebody confirm?Thanks -----Original Message----- From: Benjamin Coiffe [mailto:[EMAIL PROTECTED] Sent: 24 January 2008 15:36 To: [email protected] Subject: [Dynamic Client, TypeClassInitializer, Wrapped operation] problem 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>
