I am trying to generate stub webservice code from a wsdl file that I have When I ran the mvn install command originally - it referenced the wsdl had problems with duplicate names. I looked online and realised I needed to use a binding file
I have this setup but unfortunately I am not able to get the code to compile
Here are the relevant details
Pom File Plugin Entry
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<!-- <version>2.5.2</version> -->
<version>3.1.4</version>
<executions>
<execution>
<id>cxf-codegen</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/MyService.wsdl</wsdl>
<packagenames>
<packagename>com.services.api.myservice.generated</packagename>
</packagenames>
<bindingFiles>
<bindingFile>${basedir}/src/main/resources/wsdl/MyBinding.xml</bindingFile>
</bindingFiles>
</wsdlOption>
</wsdlOptions>
</configuration>
</execution>
</executions>
</plugin>
Binding File - MyBinding.xml
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:s="http://www.w3.org/2001/XMLSchema"
wsdlLocation="MyService.wsdl">
<jxb:bindings>
<jxb:bindings node="./s:element[@name='MyAdvancedSearchResult']/s:complexType/s:sequence/s:any[@minOccurs='1']">
<jxb:property name="ValueAttribute2" />
</jxb:bindings>
<jxb:bindings node=".//s:element[@name='ResponseTable']/s:complexType/s:sequence/s:any[@minOccurs='0']">
<jxb:property name="responseTable2" />
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
Wsdl File - MyService.wsdl
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="MyAdvancedSearch">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="keyword" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="corpId" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="MyAdvancedSearchResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MyAdvancedSearchResult">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getToDoListbyStatus">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Corpid" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getToDoListbyStatusResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getToDoListbyStatusResult" type="tns:ArrayOfActivityToDoListbyStatus" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfActivityToDoListbyStatus">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ActivityToDoListbyStatus" nillable="true" type="tns:ActivityToDoListbyStatus" />
</s:sequence>
</s:complexType>
<s:complexType name="ActivityToDoListbyStatus">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ActivityId" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="ActivityName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ActivityDesc" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ActivityLabel" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Code" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="StartDate" />
<s:element minOccurs="0" maxOccurs="1" name="EndDate" />
<s:element minOccurs="1" maxOccurs="1" name="Requiredind" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="ExactDueDate" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="Assignedind" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="RegStatus" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="Duration" type="s:float" />
<s:element minOccurs="0" maxOccurs="1" name="Catagory" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="reqActAuthHeader" type="tns:reqActAuthHeader" />
<s:complexType name="reqActAuthHeader">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
</s:sequence>
<s:anyAttribute />
</s:complexType>
<s:element name="getToDoListbyStatus_LG">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Corpid" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getToDoListbyStatus_LGResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getToDoListbyStatus_LGResult" type="tns:ArrayOfActivityToDoListbyStatus" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ResponseTable" nillable="true">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ArrayOfActivityToDoListbyStatus" nillable="true" type="tns:ArrayOfActivityToDoListbyStatus" />
</s:schema>
</wsdl:types>
<wsdl:message name="MyAdvancedSearchSoapIn">
<wsdl:part name="parameters" element="tns:MyAdvancedSearch" />
</wsdl:message>
<wsdl:message name="MyAdvancedSearchSoapOut">
<wsdl:part name="parameters" element="tns:MyAdvancedSearchResponse" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatusSoapIn">
<wsdl:part name="parameters" element="tns:getToDoListbyStatus" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatusSoapOut">
<wsdl:part name="parameters" element="tns:getToDoListbyStatusResponse" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatusreqActAuthHeader">
<wsdl:part name="reqActAuthHeader" element="tns:reqActAuthHeader" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatus_LGSoapIn">
<wsdl:part name="parameters" element="tns:getToDoListbyStatus_LG" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatus_LGSoapOut">
<wsdl:part name="parameters" element="tns:getToDoListbyStatus_LGResponse" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatus_LGreqActAuthHeader">
<wsdl:part name="reqActAuthHeader" element="tns:reqActAuthHeader" />
</wsdl:message>
<wsdl:message name="MyAdvancedSearchHttpGetIn">
<wsdl:part name="keyword" type="s:string" />
<wsdl:part name="corpId" type="s:string" />
</wsdl:message>
<wsdl:message name="MyAdvancedSearchHttpGetOut">
<wsdl:part name="Body" element="tns:ResponseTable" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatusHttpGetIn">
<wsdl:part name="Corpid" type="s:string" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatusHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfActivityToDoListbyStatus" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatus_LGHttpGetIn">
<wsdl:part name="Corpid" type="s:string" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatus_LGHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfActivityToDoListbyStatus" />
</wsdl:message>
<wsdl:message name="MyAdvancedSearchHttpPostIn">
<wsdl:part name="keyword" type="s:string" />
<wsdl:part name="corpId" type="s:string" />
</wsdl:message>
<wsdl:message name="MyAdvancedSearchHttpPostOut">
<wsdl:part name="Body" element="tns:ResponseTable" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatusHttpPostIn">
<wsdl:part name="Corpid" type="s:string" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatusHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfActivityToDoListbyStatus" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatus_LGHttpPostIn">
<wsdl:part name="Corpid" type="s:string" />
</wsdl:message>
<wsdl:message name="getToDoListbyStatus_LGHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfActivityToDoListbyStatus" />
</wsdl:message>
<wsdl:portType name="MyServiceSoap">
<wsdl:operation name="MyAdvancedSearch">
<wsdl:input message="tns:MyAdvancedSearchSoapIn" />
<wsdl:output message="tns:MyAdvancedSearchSoapOut" />
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus">
<wsdl:input message="tns:getToDoListbyStatusSoapIn" />
<wsdl:output message="tns:getToDoListbyStatusSoapOut" />
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus_LG">
<wsdl:input message="tns:getToDoListbyStatus_LGSoapIn" />
<wsdl:output message="tns:getToDoListbyStatus_LGSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="MyServiceHttpGet">
<wsdl:operation name="MyAdvancedSearch">
<wsdl:input message="tns:MyAdvancedSearchHttpGetIn" />
<wsdl:output message="tns:MyAdvancedSearchHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus">
<wsdl:input message="tns:getToDoListbyStatusHttpGetIn" />
<wsdl:output message="tns:getToDoListbyStatusHttpGetOut" />
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus_LG">
<wsdl:input message="tns:getToDoListbyStatus_LGHttpGetIn" />
<wsdl:output message="tns:getToDoListbyStatus_LGHttpGetOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="MyServiceHttpPost">
<wsdl:operation name="MyAdvancedSearch">
<wsdl:input message="tns:MyAdvancedSearchHttpPostIn" />
<wsdl:output message="tns:MyAdvancedSearchHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus">
<wsdl:input message="tns:getToDoListbyStatusHttpPostIn" />
<wsdl:output message="tns:getToDoListbyStatusHttpPostOut" />
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus_LG">
<wsdl:input message="tns:getToDoListbyStatus_LGHttpPostIn" />
<wsdl:output message="tns:getToDoListbyStatus_LGHttpPostOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="MyServiceSoap" type="tns:MyServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="MyAdvancedSearch">
<soap:operation soapAction="http://tempuri.org/MyAdvancedSearch" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus">
<soap:operation soapAction="http://tempuri.org/getToDoListbyStatus" style="document" />
<wsdl:input>
<soap:body use="literal" />
<soap:header message="tns:getToDoListbyStatusreqActAuthHeader" part="reqActAuthHeader" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus_LG">
<soap:operation soapAction="http://tempuri.org/getToDoListbyStatus_LG" style="document" />
<wsdl:input>
<soap:body use="literal" />
<soap:header message="tns:getToDoListbyStatus_LGreqActAuthHeader" part="reqActAuthHeader" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="MyServiceSoap12" type="tns:MyServiceSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="MyAdvancedSearch">
<soap12:operation soapAction="http://tempuri.org/MyAdvancedSearch" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus">
<soap12:operation soapAction="http://tempuri.org/getToDoListbyStatus" style="document" />
<wsdl:input>
<soap12:body use="literal" />
<soap12:header message="tns:getToDoListbyStatusreqActAuthHeader" part="reqActAuthHeader" use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus_LG">
<soap12:operation soapAction="http://tempuri.org/getToDoListbyStatus_LG" style="document" />
<wsdl:input>
<soap12:body use="literal" />
<soap12:header message="tns:getToDoListbyStatus_LGreqActAuthHeader" part="reqActAuthHeader" use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="MyServiceHttpGet" type="tns:MyServiceHttpGet">
<http:binding verb="GET" />
<wsdl:operation name="MyAdvancedSearch">
<http:operation location="/MyAdvancedSearch" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus">
<http:operation location="/getToDoListbyStatus" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus_LG">
<http:operation location="/getToDoListbyStatus_LG" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="MyServiceHttpPost" type="tns:MyServiceHttpPost">
<http:binding verb="POST" />
<wsdl:operation name="MyAdvancedSearch">
<http:operation location="/MyAdvancedSearch" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus">
<http:operation location="/getToDoListbyStatus" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getToDoListbyStatus_LG">
<http:operation location="/getToDoListbyStatus_LG" />
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded" />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MyService">
<wsdl:port name="MyServiceSoap" binding="tns:MyServiceSoap">
<soap:address location="http://test.com/Myservice.asmx" />
</wsdl:port>
<wsdl:port name="MyServiceSoap12" binding="tns:MyServiceSoap12">
<soap12:address location="http://test.com/Myservice.asmx" />
</wsdl:port>
<wsdl:port name="MyServiceHttpGet" binding="tns:MyServiceHttpGet">
<http:address location="http://test.com/Myservice.asmx" />
</wsdl:port>
<wsdl:port name="MyServiceHttpPost" binding="tns:MyServiceHttpPost">
<http:address location="http://test.com/Myservice.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
When I run mvn install - I get the following errors - Any idea what I need to do to resolve this?
XPath evaluation of "./s:element[@name='MyAdvancedSearchResult']/s:complexType/s:sequence/s:any[@minOccurs='1']" results in empty target node
XPath evaluation of ".//s:element[@name='ResponseTable']/s:complexType/s:sequence/s:any[@minOccurs='0']" results in empty target node