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>

Reply via email to