Hi I created a web service, and I've been testing it with SoapUI successfully.
But whenever I try to generate the client in Rational Application Developer, Visual Studio or even in SoapUI I keep getting the following error:
Using AXIS2_HOME: C:\Download\Axis2\axis2-1.4.1-bin\axis2-1.4.1
Using JAVA_HOME: C:\j2sdk1.4.2_04
org.apache.axis2.wsdl.codegen.CodeGenerationException: org.apache.axis2.wsdlUnmatchedTypeException: No type was mapped to the name ContractInfo with namespace http://service.invcontractinfo.ws.uig.com/
at ...
My WSDL is the following:
<?xml version="1.0"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://wpf.ibm.com/2002/03/models/InvContractInfoWS" xmlns:xsd1="http://service.invcontractinfo.ws.uig.com/" xmlns:xsd2="InvContractInfoWS/sql_GetOwnerInfo/sql_GetOwnerInfoInputs" xmlns:xsd3="InvContractInfoWS/sql_getContractInfo/sql_getContractInfoInputs" xmlns:xsd4="InvContractInfoWS/sql_getDeathBenefits/sql_getDeathBenefitsInputs" xmlns:xsd5="http://Services/Investment_Services/sql_getLastValidDate" xmlns:xsd6="http://generatedschema.bowstreet.com/InvContractInfoWS/GetLastValidDateInputSchema" xmlns:xsd7="http://Services/Investment_Services/sql_getProductType" xmlns:xsd8="InvContractInfoWS/sql_getProductType/sql_getProductTypeInputs" xmlns:xsd9="InvContractInfoWS/sql_getBalanceVariantInfo/sql_getBalanceVariantInfoInputs" xmlns:xsd10="InvContractInfoWS/sql_getBalanceNonVariantInfo/sql_getBalanceNonVariantInfoInputs" xmlns:xsd11="InvContractInfoWS/sql_getTransHistVariant/sql_getTransHistVariantInputs" xmlns:xsd12="InvContractInfoWS/sql_getTransHistNonVariant/sql_getTransHistNonVariantInputs" xmlns:xsd13="http://Services/Investment_Services/sql_getProdList" xmlns:xsd14="InvContractInfoWS/Inv_/InvContractInfoWSGetProductListReservedMethodDispatcher" xmlns:xsd15="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataInputSchema" xmlns:xsd16="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataOnLastValidDateInputSchema" name="InvContractInfoWS" targetNamespace="http://wpf.ibm.com/2002/03/models/InvContractInfoWS"><wsdl:types><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://service.invcontractinfo.ws.uig.com/" targetNamespace="http://service.invcontractinfo.ws.uig.com/"><xsd:element name="InvestmentContractInputs"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" ref="tns:CONTRACT_NUM" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:complexType name="OwnerInfoType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="CONT" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="POL_NUM" nillable="false" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="OWNER" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ADDR1" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ADDR2" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ADDR3" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="SOCSEC" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="DOB" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ANNUITANT" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContractInfoType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="CONT_NUMBER" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="POLICY_NUMBER" nillable="false" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="AGENCY" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="EFF_DATE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="EXP_DATE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="POL_TYPE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="PRODUCER" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="WRT_PREMIUM" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="POLSTATUS" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="ISSUEDATE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="PRODNAME" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="QUALPLAN" nillable="false" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DeathBenefitsType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="CV_CASHVALUE" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CV_ACCOUNTVAL" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CV_DEATHBEN" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CV_DEATHBEN_ANNIVERSARY" nillable="true" type="xsd:decimal" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BalanceInfoRowSetType"><xsd:sequence><xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:BalanceInfoRow" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="BalanceInfoRow"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="CQ_UNITS" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CQ_UNIT_VAL" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="CQ_INV_VAL" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="AD_DIV_NAME" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="TransactionHistoryRowSetType"><xsd:sequence><xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:TransactionHistoryRow" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="TransactionHistoryRow"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" name="TXN_DATE" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="PY_TXN_TYPE_DESC" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="TD_TXN_DET_AMT" nillable="true" type="xsd:decimal" />
<xsd:element maxOccurs="1" minOccurs="1" name="TD_INT_RATE" nillable="true" type="xsd:decimal" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="InvestmentContractResults" type="tns:InvestmentContractResultsType" />
<xsd:complexType name="InvestmentContractResultsType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="0" name="OwnerInfo" type="tns:OwnerInfoType" />
<xsd:element maxOccurs="1" minOccurs="0" name="ContractInfo" type="tns:ContractInfoType" />
<xsd:element maxOccurs="1" minOccurs="0" name="DeathBenefits" type="tns:DeathBenefitsType" />
<xsd:element maxOccurs="1" minOccurs="0" name="BalanceInfo" type="tns:BalanceInfoRowSetType" />
<xsd:element maxOccurs="1" minOccurs="0" name="TransactionHistory" type="tns:TransactionHistoryRowSetType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MultiInvestmentContractRowSetType"><xsd:sequence><xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:InvestmentContractResultsRow" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="InvestmentContractResultsRow"><xsd:complexType><xsd:sequence><xsd:element maxOccurs="1" minOccurs="0" name="OwnerInfo" type="tns:OwnerInfoType" />
<xsd:element maxOccurs="1" minOccurs="0" name="ContractInfo" type="tns:ContractInfoType" />
<xsd:element maxOccurs="1" minOccurs="0" name="DeathBenefits" type="tns:DeathBenefitsType" />
<xsd:element maxOccurs="1" minOccurs="0" name="BalanceInfo" type="tns:BalanceInfoRowSetType" />
<xsd:element maxOccurs="1" minOccurs="0" name="TransactionHistory" type="tns:TransactionHistoryRowSetType" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_GetOwnerInfo/sql_GetOwnerInfoInputs" targetNamespace="InvContractInfoWS/sql_GetOwnerInfo/sql_GetOwnerInfoInputs"><xsd:element name="sql_GetOwnerInfoInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getContractInfo/sql_getContractInfoInputs" targetNamespace="InvContractInfoWS/sql_getContractInfo/sql_getContractInfoInputs"><xsd:element name="sql_getContractInfoInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getDeathBenefits/sql_getDeathBenefitsInputs" targetNamespace="InvContractInfoWS/sql_getDeathBenefits/sql_getDeathBenefitsInputs"><xsd:element name="sql_getDeathBenefitsInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
<xsd:element ref="tns:VAL_DATE" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:element name="VAL_DATE" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cns="http://Services/Investment_Services/sql_getLastValidDate" targetNamespace="http://Services/Investment_Services/sql_getLastValidDate" elementFormDefault="qualified" attributeFormDefault="unqualified"><xsd:annotation><xsd:documentation xml:lang="en">Schema automatically generated on "Tuesday, December 7, 2010 2:56:31 PM VET" from the content of XML Variable "getSchema_TransformXml"</xsd:documentation>
</xsd:annotation>
<xsd:element name="RowSet" type="cns:RowSetType" />
<xsd:complexType name="RowSetType"><xsd:sequence><xsd:element ref="cns:Row" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Row"><xsd:complexType><xsd:sequence><xsd:element name="CV_VALDATE" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://generatedschema.bowstreet.com/InvContractInfoWS/GetLastValidDateInputSchema" targetNamespace="http://generatedschema.bowstreet.com/InvContractInfoWS/GetLastValidDateInputSchema"><xsd:element name="arguments"><xsd:complexType><xsd:sequence><xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cns="http://Services/Investment_Services/sql_getProductType" targetNamespace="http://Services/Investment_Services/sql_getProductType" elementFormDefault="qualified" attributeFormDefault="unqualified"><xsd:annotation><xsd:documentation xml:lang="en">Schema automatically generated on "Monday, December 6, 2010 4:38:48 PM VET" from the content of XML Variable "getSchema_TransformXml"</xsd:documentation>
</xsd:annotation>
<xsd:element name="RowSet" type="cns:RowSetType" />
<xsd:complexType name="RowSetType"><xsd:sequence><xsd:element ref="cns:Row" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Row"><xsd:complexType><xsd:sequence><xsd:element name="PROD_TYPE" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getProductType/sql_getProductTypeInputs" targetNamespace="InvContractInfoWS/sql_getProductType/sql_getProductTypeInputs"><xsd:element name="sql_getProductTypeInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTARCT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTARCT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getBalanceVariantInfo/sql_getBalanceVariantInfoInputs" targetNamespace="InvContractInfoWS/sql_getBalanceVariantInfo/sql_getBalanceVariantInfoInputs"><xsd:element name="sql_getBalanceVariantInfoInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
<xsd:element ref="tns:VAL_DATE" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:element name="VAL_DATE" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getBalanceNonVariantInfo/sql_getBalanceNonVariantInfoInputs" targetNamespace="InvContractInfoWS/sql_getBalanceNonVariantInfo/sql_getBalanceNonVariantInfoInputs"><xsd:element name="sql_getBalanceNonVariantInfoInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
<xsd:element ref="tns:VAL_DATE" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:element name="VAL_DATE" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getTransHistVariant/sql_getTransHistVariantInputs" targetNamespace="InvContractInfoWS/sql_getTransHistVariant/sql_getTransHistVariantInputs"><xsd:element name="sql_getTransHistVariantInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/sql_getTransHistNonVariant/sql_getTransHistNonVariantInputs" targetNamespace="InvContractInfoWS/sql_getTransHistNonVariant/sql_getTransHistNonVariantInputs"><xsd:element name="sql_getTransHistNonVariantInputs"><xsd:complexType><xsd:sequence><xsd:element ref="tns:CONTRACT_NUM" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cns="http://Services/Investment_Services/sql_getProdList" targetNamespace="http://Services/Investment_Services/sql_getProdList" elementFormDefault="qualified" attributeFormDefault="unqualified"><xsd:annotation><xsd:documentation xml:lang="en">Schema automatically generated on "Monday, December 6, 2010 4:57:00 PM VET" from the content of XML Variable "getSchema_TransformXml"</xsd:documentation>
</xsd:annotation>
<xsd:element name="RowSet" type="cns:RowSetType" />
<xsd:complexType name="RowSetType"><xsd:sequence><xsd:element ref="cns:Row" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Row"><xsd:complexType><xsd:sequence><xsd:element name="POL_TYPE_VAL" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true" />
<xsd:element name="POL_TYPE_ID" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="InvContractInfoWS/Inv_/InvContractInfoWSGetProductListReservedMethodDispatcher" targetNamespace="InvContractInfoWS/Inv_/InvContractInfoWSGetProductListReservedMethodDispatcher"><xsd:element name="reservedMethodDispatcher" type="xsd:string" />
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataInputSchema" targetNamespace="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataInputSchema"><xsd:element name="arguments"><xsd:complexType><xsd:sequence><xsd:element name="CONTRACT_NUM" type="xsd:string" />
<xsd:element name="VAL_DATE" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataOnLastValidDateInputSchema" targetNamespace="http://generatedschema.bowstreet.com/InvContractInfoWS/GetAllContractDataOnLastValidDateInputSchema"><xsd:element name="arguments"><xsd:complexType><xsd:sequence><xsd:element name="CONTRACT_NUM" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="GetOwnerInfoResponse"><wsdl:part name="returnGetOwnerInfoResults" element="xsd1:OwnerInfo" />
</wsdl:message>
<wsdl:message name="GetOwnerInfoRequest"><wsdl:part name="sql_GetOwnerInfoInputs" element="xsd2:sql_GetOwnerInfoInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetContractInfoResponse"><wsdl:part name="returnGetContractInfoResults" element="xsd1:ContractInfo" />
</wsdl:message>
<wsdl:message name="GetContractInfoRequest"><wsdl:part name="sql_getContractInfoInputs" element="xsd3:sql_getContractInfoInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetDeathBenefitsResponse"><wsdl:part name="returnGetDeathBenefitsResults" element="xsd1:DeathBenefits" />
</wsdl:message>
<wsdl:message name="GetDeathBenefitsRequest"><wsdl:part name="sql_getDeathBenefitsInputs" element="xsd4:sql_getDeathBenefitsInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetLastValidDateResponse"><wsdl:part name="returnGetLastValidDateResults" element="xsd5:RowSet" />
</wsdl:message>
<wsdl:message name="GetLastValidDateRequest"><wsdl:part name="arguments" element="xsd6:arguments"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetProductTypeResponse"><wsdl:part name="returnGetProductTypeResults" element="xsd7:RowSet" />
</wsdl:message>
<wsdl:message name="GetProductTypeRequest"><wsdl:part name="sql_getProductTypeInputs" element="xsd8:sql_getProductTypeInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetVariantBalanceResponse"><wsdl:part name="returnGetVariantBalanceResults" element="xsd1:BalanceInfo" />
</wsdl:message>
<wsdl:message name="GetVariantBalanceRequest"><wsdl:part name="sql_getBalanceVariantInfoInputs" element="xsd9:sql_getBalanceVariantInfoInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetNonVariantBalanceResponse"><wsdl:part name="returnGetNonVariantBalanceResults" element="xsd1:BalanceInfo" />
</wsdl:message>
<wsdl:message name="GetNonVariantBalanceRequest"><wsdl:part name="sql_getBalanceNonVariantInfoInputs" element="xsd10:sql_getBalanceNonVariantInfoInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetVariantTransactionHistoryResponse"><wsdl:part name="returnGetVariantTransactionHistoryResults" element="xsd1:TransactionHistory" />
</wsdl:message>
<wsdl:message name="GetVariantTransactionHistoryRequest"><wsdl:part name="sql_getTransHistVariantInputs" element="xsd11:sql_getTransHistVariantInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetNonVariantTransactionHistoryResponse"><wsdl:part name="returnGetNonVariantTransactionHistoryResults" element="xsd1:TransactionHistory" />
</wsdl:message>
<wsdl:message name="GetNonVariantTransactionHistoryRequest"><wsdl:part name="sql_getTransHistNonVariantInputs" element="xsd12:sql_getTransHistNonVariantInputs"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetProductListResponse"><wsdl:part name="returnGetProductListResults" element="xsd13:RowSet" />
</wsdl:message>
<wsdl:message name="GetProductListRequest"><wsdl:part name="reservedMethodDispatcher" element="xsd14:reservedMethodDispatcher"><wsdl:documentation>This is a dummy XML input used to support document/literal SOAP encoding for services that have no inputs.</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetAllContractDataResponse"><wsdl:part name="returnGetAllContractDataResults" element="xsd1:InvestmentContractResults" />
</wsdl:message>
<wsdl:message name="GetAllContractDataRequest"><wsdl:part name="arguments" element="xsd15:arguments"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:message name="GetAllContractDataOnLastValidDateResponse"><wsdl:part name="returnGetAllContractDataOnLastValidDateResults" element="xsd1:InvestmentContractResults" />
</wsdl:message>
<wsdl:message name="GetAllContractDataOnLastValidDateRequest"><wsdl:part name="arguments" element="xsd16:arguments"><wsdl:documentation>[no description supplied]</wsdl:documentation>
</wsdl:part>
</wsdl:message>
<wsdl:portType name="InvContractInfoWSDOCPortType"><wsdl:operation name="GetOwnerInfo"><wsdl:input message="tns:GetOwnerInfoRequest" name="GetOwnerInfoRequest" />
<wsdl:output message="tns:GetOwnerInfoResponse" name="GetOwnerInfoResponse" />
</wsdl:operation>
<wsdl:operation name="GetContractInfo"><wsdl:input message="tns:GetContractInfoRequest" name="GetContractInfoRequest" />
<wsdl:output message="tns:GetContractInfoResponse" name="GetContractInfoResponse" />
</wsdl:operation>
<wsdl:operation name="GetDeathBenefits"><wsdl:input message="tns:GetDeathBenefitsRequest" name="GetDeathBenefitsRequest" />
<wsdl:output message="tns:GetDeathBenefitsResponse" name="GetDeathBenefitsResponse" />
</wsdl:operation>
<wsdl:operation name="GetLastValidDate"><wsdl:input message="tns:GetLastValidDateRequest" name="GetLastValidDateRequest" />
<wsdl:output message="tns:GetLastValidDateResponse" name="GetLastValidDateResponse" />
</wsdl:operation>
<wsdl:operation name="GetProductType"><wsdl:input message="tns:GetProductTypeRequest" name="GetProductTypeRequest" />
<wsdl:output message="tns:GetProductTypeResponse" name="GetProductTypeResponse" />
</wsdl:operation>
<wsdl:operation name="GetVariantBalance"><wsdl:input message="tns:GetVariantBalanceRequest" name="GetVariantBalanceRequest" />
<wsdl:output message="tns:GetVariantBalanceResponse" name="GetVariantBalanceResponse" />
</wsdl:operation>
<wsdl:operation name="GetNonVariantBalance"><wsdl:input message="tns:GetNonVariantBalanceRequest" name="GetNonVariantBalanceRequest" />
<wsdl:output message="tns:GetNonVariantBalanceResponse" name="GetNonVariantBalanceResponse" />
</wsdl:operation>
<wsdl:operation name="GetVariantTransactionHistory"><wsdl:input message="tns:GetVariantTransactionHistoryRequest" name="GetVariantTransactionHistoryRequest" />
<wsdl:output message="tns:GetVariantTransactionHistoryResponse" name="GetVariantTransactionHistoryResponse" />
</wsdl:operation>
<wsdl:operation name="GetNonVariantTransactionHistory"><wsdl:input message="tns:GetNonVariantTransactionHistoryRequest" name="GetNonVariantTransactionHistoryRequest" />
<wsdl:output message="tns:GetNonVariantTransactionHistoryResponse" name="GetNonVariantTransactionHistoryResponse" />
</wsdl:operation>
<wsdl:operation name="GetProductList"><wsdl:input message="tns:GetProductListRequest" name="GetProductListRequest" />
<wsdl:output message="tns:GetProductListResponse" name="GetProductListResponse" />
</wsdl:operation>
<wsdl:operation name="GetAllContractData"><wsdl:input message="tns:GetAllContractDataRequest" name="GetAllContractDataRequest" />
<wsdl:output message="tns:GetAllContractDataResponse" name="GetAllContractDataResponse" />
</wsdl:operation>
<wsdl:operation name="GetAllContractDataOnLastValidDate"><wsdl:input message="tns:GetAllContractDataOnLastValidDateRequest" name="GetAllContractDataOnLastValidDateRequest" />
<wsdl:output message="tns:GetAllContractDataOnLastValidDateResponse" name="GetAllContractDataOnLastValidDateResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="InvContractInfoWSDOCBinding" type="tns:InvContractInfoWSDOCPortType"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="GetOwnerInfo"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetContractInfo"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetDeathBenefits"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetLastValidDate"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetProductType"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetVariantBalance"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetNonVariantBalance"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetVariantTransactionHistory"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetNonVariantTransactionHistory"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetProductList"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetAllContractData"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetAllContractDataOnLastValidDate"><soap:operation soapAction="" style="document" />
<wsdl:input><soap:body use="literal" />
</wsdl:input>
<wsdl:output><soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="InvContractInfoWS"><wsdl:port name="InvContractInfoWSSOAPDocument" binding="tns:InvContractInfoWSDOCBinding"><soap:address location="http://vmwprocsrvt:9081/UnivInvContractWS/servlet/AxisServlet" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
For reference this web service was created in WebSphere Portlet Factory.
This WSDL is not valid. At the very least:
File Untitled8.wsdl is not valid.
File Untitled8.wsdl is not valid.
attribute 'element' in message part 'returnGetOwnerInfoResults'
(message 'GetOwnerInfoResponse')
refers to element 'xsd1:OwnerInfo'
which is not defined within the WSDL
file!
Error location: wsdl:definitions / wsdl:message /
wsdl:part / #element
This refers to
<wsdl:message name="GetOwnerInfoResponse">
<wsdl:part name="returnGetOwnerInfoResults" element="xsd1:OwnerInfo"/>
</wsdl:message>
Related
I'm trying run a contract-first by CXF and Maven.
I have a WSDL which is inside src/java/resource/wsdl and 5 xsds which are inside src/java/resources/xsd
My hierarchi seems like this:
aaa.v1r0.xsd (have an element which refers to bbb.v1r0.xsd)
bbb.v1r0.xsd (have elements which refers to ccc.v1r0.xsd, ddd.v1r0.xsd and eee.v1r0.xsd)
ccc.v1r0.xsd
ddd.v1r0.xsd (have an element which refers to eee.v1r0.xsd)
eee.v1r0.xsd
aaa.v1r0.wsdl have an element which refers to aaa.v1r0.xsd
aaa.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/aaa"
xmlns="http://schemas.example.com.br/aaa"
version="v1r0"
xmlns:bbb="http://schemas.example.com.br/bbb">
<xsd:import
namespace="http://schemas.example.com.br/bbb"
schemaLocation="bbb.v1r0.xsd"/>
<xsd:element name="aaa" type="Aaa"/>
<xsd:element name="aaas" type="Aaas"/>
<xsd:complexType name="Aaa">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="bbb:bbbs" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Aaas">
<xsd:sequence>
<xsd:element ref="aaa" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
bbb.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/bbb"
xmlns="http://schemas.example.com.br/bbb"
version="v1r0"
xmlns:ccc="http://schemas.example.com.br/ccc"
xmlns:ddd="http://schemas.example.com.br/ddd"
xmlns:eee="http://schemas.example.com.br/eee">
<xsd:import
namespace="http://schemas.example.com.br/ccc"
schemaLocation="ccc.v1r0.xsd"/>
<xsd:import
namespace="http://schemas.example.com.br/ddd"
schemaLocation="ddd.v1r0.xsd"/>
<xsd:import
namespace="http://schemas.example.com.br/eee"
schemaLocation="eee.v1r0.xsd"/>
<xsd:element name="bbb" type="Bbb"/>
<xsd:element name="bbbs" type="Bbbs"/>
<xsd:complexType name="Bbb">
<xsd:sequence>
<xsd:element name="field1" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field3" type="xsd:base64Binary" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ccc:ccc" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field4" type="xsd:integer" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field5" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ddd:ddd" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field6" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="eee:eees" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Bbbs">
<xsd:sequence>
<xsd:element ref="bbb" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
ccc.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/ccc"
xmlns="http://schemas.example.com.br/ccc"
version="v1r0">
<xsd:element name="ccc" type="Ccc"/>
<xsd:complexType name="Ccc">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field3" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:double" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:double" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
ddd.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/ddd"
xmlns="http://schemas.example.com.br/ddd"
version="v1r0"
xmlns:eee="http://schemas.example.com.br/eee">
<xsd:import
namespace="http://schemas.example.com.br/eee"
schemaLocation="eee.v1r0.xsd"/>
<xsd:element name="ddd" type="Ddd"/>
<xsd:element name="ddds" type="Ddds"/>
<xsd:complexType name="Ddd">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:time" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="eee:eees" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Ddds">
<xsd:sequence>
<xsd:element ref="ddd" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
eee.v1r0.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.example.com.br/eee"
xmlns="http://schemas.example.com.br/eee"
version="v1r0">
<xsd:element name="eee" type="Eee"/>
<xsd:element name="eees" type="Eees"/>
<xsd:complexType name="Eee">
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field3" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field4" type="xsd:integer" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field5" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Eees">
<xsd:sequence>
<xsd:element ref="eee" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
aaa.v1r0.wsdl
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions
name="evento.v1r0"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://services.example.com.br/aaa"
xmlns:tns="http://services.example.com.br/aaa">
<wsdl:types>
<xsd:schema
elementFormDefault="qualified"
targetNamespace="http://services.example.com.br/aaa"
xmlns:aaa="http://schemas.example.com.br/aaa">
<xsd:import
namespace="http://schemas.example.com.br/aaa"
schemaLocation="../xsd/aaa.v1r0.xsd"/>
<xsd:element name="capacity01Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaa" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity01Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity02Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field2" type="xsd:date" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity02Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field02" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field03" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field04" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field05" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field06" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field07" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field08" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field09" type="xsd:base64Binary" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field10" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field11" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field12" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="field13" type="xsd:integer" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity03Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field02" type="xsd:date" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity03Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaas" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity04Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="field02" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field03" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field04" type="xsd:date" minOccurs="0" maxOccurs="1"/>
<xsd:element name="field05" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity04Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaas" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AaaError">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="requestcapacity01">
<wsdl:part name="capacity01Request" element="tns:capacity01Request"/>
</wsdl:message>
<wsdl:message name="responsecapacity01">
<wsdl:part name="capacity01Response" element="tns:capacity01Response"/>
</wsdl:message>
<wsdl:message name="requestcapacity02">
<wsdl:part name="capacity02Request" element="tns:capacity02Request"/>
</wsdl:message>
<wsdl:message name="responsecapacity02">
<wsdl:part name="capacity02Response" element="tns:capacity02Response"/>
</wsdl:message>
<wsdl:message name="requestcapacity03">
<wsdl:part name="capacity03Request" element="tns:capacity03Request"/>
</wsdl:message>
<wsdl:message name="responsecapacity03">
<wsdl:part name="capacity03Response" element="tns:capacity03Response"/>
</wsdl:message>
<wsdl:message name="requestcapacity04">
<wsdl:part name="capacity04Request" element="tns:capacity04Request"/>
</wsdl:message>
<wsdl:message name="responsecapacity04">
<wsdl:part name="capacity04Response" element="tns:capacity04Response"/>
</wsdl:message>
<wsdl:message name="AaaError">
<wsdl:part name="AaaError" element="tns:AaaError"/>
</wsdl:message>
<wsdl:portType name="eventoPortType">
<wsdl:operation name="capacity01">
<wsdl:input message="tns:requestcapacity01"/>
<wsdl:output message="tns:responsecapacity01"/>
<wsdl:fault name="error" message="tns:AaaError"/>
</wsdl:operation>
<wsdl:operation name="capacity02">
<wsdl:input message="tns:requestcapacity02"/>
<wsdl:output message="tns:responsecapacity02"/>
<wsdl:fault name="error" message="tns:AaaError"/>
</wsdl:operation>
<wsdl:operation name="capacity03">
<wsdl:input message="tns:requestcapacity03"/>
<wsdl:output message="tns:responsecapacity03"/>
<wsdl:fault name="error" message="tns:AaaError"/>
</wsdl:operation>
<wsdl:operation name="capacity04">
<wsdl:input message="tns:requestcapacity04"/>
<wsdl:output message="tns:responsecapacity04"/>
<wsdl:fault name="error" message="tns:AaaError"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="eventoSOAP11Binding" type="tns:eventoPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="capacity01">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity02">
<soap:operation style="document" soapAction=""/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity03">
<soap:operation style="document" soapAction=""/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity04">
<soap:operation style="document" soapAction=""/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="aaaService">
<wsdl:port name="AaaPort" binding="tns:eventoSOAP11Binding">
<soap:address location="http://localhost:8080/aaa-service/services/aaa"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.exampleapp</groupId>
<artifactId>aaa-service</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>aaa-service Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<cxf.version>3.0.1</cxf.version>
<jdk.version>1.7</jdk.version>
<maven-compiler.version>3.1</maven-compiler.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring.version>4.0.6.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
<build>
<finalName>aaa-service</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler.version}</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding></encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/src/main/java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/aaa.v1r0.wsdl</wsdl>
<extraargs>
<extraarg>-impl</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<jaxws:endpoint
id="aaa"
implementor="br.com.example.services.aaa.AaaPortImpl"
wsdlLocation="wsdl/aaa.v1r0.wsdl"
address="/aaa">
</jaxws:endpoint>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee /web-app_2_5.xsd">
<display-name>Sample web service provider</display-name>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
</web-app>
When I run my project in a Tomcat server, I can access the WSDL configuration through http://localhost:8080/aaa-service/services/aaa?wsdl
However, when I try test this configuration through SOAPUI, I receive a message which say that was an error loading WSDL
Source null
Error element bbbs#http://schemas.example.com.br/bbb not found
What am I doing wrong? is there some configuration to ref elements?
Add the import statement to import other xsd to wsdl
<xsd:import namespace="http://schemas.example.com.br/bbb" schemaLocation="../xsd/bbb.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/ccc" schemaLocation="../xsd/ccc.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/ddd" schemaLocation="../xsd/ddd.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/eee" schemaLocation="../xsd/eee.v1r0.xsd" />
Your wsdl would look like as below
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions name="evento.v1r0" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://services.example.com.br/aaa" xmlns:tns="http://services.example.com.br/aaa">
<wsdl:types>
<xsd:schema elementFormDefault="qualified" targetNamespace="http://services.example.com.br/aaa" xmlns:aaa="http://schemas.example.com.br/aaa">
<xsd:import namespace="http://schemas.example.com.br/aaa" schemaLocation="../xsd/aaa.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/bbb" schemaLocation="../xsd/bbb.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/ccc" schemaLocation="../xsd/ccc.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/ddd" schemaLocation="../xsd/ddd.v1r0.xsd" />
<xsd:import namespace="http://schemas.example.com.br/eee" schemaLocation="../xsd/eee.v1r0.xsd" />
<xsd:element name="capacity01Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaa" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity01Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:integer" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity02Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field1" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="field2" type="xsd:date" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity02Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field02" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field03" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field04" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field05" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field06" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field07" type="xsd:dateTime" minOccurs="1" maxOccurs="1" />
<xsd:element name="field08" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field09" type="xsd:base64Binary" minOccurs="0" maxOccurs="1" />
<xsd:element name="field10" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field11" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field12" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="field13" type="xsd:integer" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity03Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="field02" type="xsd:date" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity03Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaas" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity04Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="field02" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="field03" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field04" type="xsd:date" minOccurs="0" maxOccurs="1" />
<xsd:element name="field05" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="capacity04Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="aaa:aaas" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AaaError">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field01" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="requestcapacity01">
<wsdl:part name="capacity01Request" element="tns:capacity01Request" />
</wsdl:message>
<wsdl:message name="responsecapacity01">
<wsdl:part name="capacity01Response" element="tns:capacity01Response" />
</wsdl:message>
<wsdl:message name="requestcapacity02">
<wsdl:part name="capacity02Request" element="tns:capacity02Request" />
</wsdl:message>
<wsdl:message name="responsecapacity02">
<wsdl:part name="capacity02Response" element="tns:capacity02Response" />
</wsdl:message>
<wsdl:message name="requestcapacity03">
<wsdl:part name="capacity03Request" element="tns:capacity03Request" />
</wsdl:message>
<wsdl:message name="responsecapacity03">
<wsdl:part name="capacity03Response" element="tns:capacity03Response" />
</wsdl:message>
<wsdl:message name="requestcapacity04">
<wsdl:part name="capacity04Request" element="tns:capacity04Request" />
</wsdl:message>
<wsdl:message name="responsecapacity04">
<wsdl:part name="capacity04Response" element="tns:capacity04Response" />
</wsdl:message>
<wsdl:message name="AaaError">
<wsdl:part name="AaaError" element="tns:AaaError" />
</wsdl:message>
<wsdl:portType name="eventoPortType">
<wsdl:operation name="capacity01">
<wsdl:input message="tns:requestcapacity01" />
<wsdl:output message="tns:responsecapacity01" />
<wsdl:fault name="error" message="tns:AaaError" />
</wsdl:operation>
<wsdl:operation name="capacity02">
<wsdl:input message="tns:requestcapacity02" />
<wsdl:output message="tns:responsecapacity02" />
<wsdl:fault name="error" message="tns:AaaError" />
</wsdl:operation>
<wsdl:operation name="capacity03">
<wsdl:input message="tns:requestcapacity03" />
<wsdl:output message="tns:responsecapacity03" />
<wsdl:fault name="error" message="tns:AaaError" />
</wsdl:operation>
<wsdl:operation name="capacity04">
<wsdl:input message="tns:requestcapacity04" />
<wsdl:output message="tns:responsecapacity04" />
<wsdl:fault name="error" message="tns:AaaError" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="eventoSOAP11Binding" type="tns:eventoPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="capacity01">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity02">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity03">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="capacity04">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="error">
<soap:fault name="error" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="aaaService">
<wsdl:port name="AaaPort" binding="tns:eventoSOAP11Binding">
<soap:address location="http://localhost:8080/aaa-service/services/aaa" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Hi i'm newbie working with wsdl, xsd and web services... I must generate some class from a wsdl generated in EA.
I found some problems trying to import 2 local schemas on same namespace, so my workaround was include schemas.
But now i find an Error that i can't resolve:
[ERROR] XML type "{http://www.iTEC.aero/AMANSequence}filter" could not be resolved, XML to JAVA binding failed! Please check the wsdl:part "filter" in the wsdl:message " {http://www.iTEC.aero
/AMANSequence}amanMessageFilter". line 75 of ***.wsdl
WSDL
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="iSwimService"
targetNamespace="http://www.iTEC.aero/AMANSequence"
xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.iTEC.aero/AMANSequence"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!--TYPES-->
<wsdl:types>
<xs:schema elementFormDefault="qualified" version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:seq="http://www.iTEC.aero/AMANSequence"
targetNamespace="http://www.iTEC.aero/AMANSequence">
<xs:include schemaLocation="AMANFilter.xsd" />
<xs:include schemaLocation="AMANSequence.xsd" />
<xs:element name="filter" type="seq:AMANSequenceFilterType" />
<xs:element name="sequence" type="seq:AMANSequence" />
</xs:schema>
</wsdl:types>
<!-- MESSAGES -->
<wsdl:message name="amanMessageSequence">
<wsdl:part type="tns:sequence" name="sequence" />
</wsdl:message>
<wsdl:message name="amanMessageFilter">
<wsdl:part type="tns:filter" name="filter" />
</wsdl:message>
<wsdl:message name="amanMessageSubscription">
<wsdl:part type="xs:string" name="stakeholderId" />
<wsdl:part type="tns:filter" name="filter" />
</wsdl:message>
<wsdl:message name="amanMessageUnSubscription">
<wsdl:part type="xs:string" name="stakeholderId" />
</wsdl:message>
<wsdl:message name="amanMessageReturn">
<wsdl:part type="xs:string" name="returnValue" />
</wsdl:message>
<wsdl:message name="amanFaultMessage">
<wsdl:part name="operationName" type="xs:string"/>
<wsdl:part name="errorCode" type="xs:string"/>
<wsdl:part name="errorMessage" type="xs:string"/>
</wsdl:message>
<!-- PORT TYPES -->
<wsdl:portType name="AMANSequenceInfo">
<wsdl:operation name="getAMANSequence">
<wsdl:input message="tns:amanMessageFilter" />
<wsdl:output message="tns:amanMessageSequence"/>
<wsdl:fault message="tns:amanFaultMessage" name="faultMessage"/>
</wsdl:operation>
<wsdl:operation name="publishAMANSequence">
<wsdl:input message="tns:amanMessageSequence" />
<wsdl:output message="tns:amanMessageReturn" />
<wsdl:fault message="tns:amanFaultMessage" name="faultMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="AMANSequenceSubscription">
<wsdl:operation name="subscribeToAMANSequence">
<wsdl:input message="tns:amanMessageSubscription" />
<wsdl:output message="tns:amanMessageReturn" />
<wsdl:fault message="tns:amanFaultMessage" name="faultMessage"/>
</wsdl:operation>
<wsdl:operation name="unsubscribeToAMANSequence">
<wsdl:input message="tns:amanMessageUnSubscription" />
<wsdl:output message="tns:amanMessageReturn" />
<wsdl:fault message="tns:amanFaultMessage" name="faultMessage"/>
</wsdl:operation>
</wsdl:portType>
<!-- BINDING -->
<wsdl:binding name="AMANSequenceInfoSOAP" type="tns:AMANSequenceInfo">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<!--
return the sequence data according to the filters provided.
if no filter is provided, all the sequence data for this aman is provided
-->
<wsdl:operation name="getAMANSequence">
<soap:operation soapAction="http://www.iTEC.aero/getAMANSequence" />
<wsdl:input>
<soap:body use="literal" namespace="http://www.iTEC.aero/AMANSequence" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace="http://www.iTEC.aero/AMANSequence"/>
</wsdl:output>
</wsdl:operation>
<!--
A request/reply operation deployed in the iMAS ESB.
The invocation of this operation will trigger a request in the iMAS ESB for distributing
this information to several stakeholders in a async way
-->
<wsdl:operation name="publishAMANSequence">
<soap:operation soapAction="http://www.iTEC.aero/publishAMANSequence" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="AMANSequenceSubscriptionSOAP" type="tns:AMANSequenceSubscription">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<!--
subscribe to the corresponding aman indicating the filter with the information the customer is interested in receiving.
The stakeholderId is also provided in this operation to manage the publication of the information
-->
<wsdl:operation name="subscribeToAMANSequence">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<!--
unsubscribe to the corresponding aman indicating the filter with the information the customer is interested in receiving.
The stakeholderId is also provided in this operation to manage the publication of the information
-->
<wsdl:operation name="unsubscribeToAMANSequence">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<!-- SERVICES -->
<wsdl:service name="AMANSequenceInfo">
<wsdl:port binding="tns:AMANSequenceInfoSOAP" name="AMANSequenceInfoService">
<soap:address location="null" />
</wsdl:port>
<wsdl:port binding="tns:AMANSequenceSubscriptionSOAP" name="AMANSequenceSubscriptionService">
<soap:address location="null" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
FILTER XSD
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="0.1"
elementFormDefault="qualified"
targetNamespace="http://www.iTEC.aero/AMANSequence"
xmlns:filter="http://www.iTEC.aero/AMANSequence"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="AMANSequenceFilterType">
<xs:sequence>
<xs:element name="filterRows" type="filter:FilterRowType" minOccurs="1" maxOccurs="1" />
<xs:element name="filterColumns" type="filter:FilterColumnsType" minOccurs="1" maxOccurs="1" />
<xs:element name="filterUpdate" type="filter:FilterUpdatedType" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="FilterRowType">
<xs:annotation>
<xs:documentation>These filters are based on the ""DomainOfinterest" class in the logical model</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="fixName" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="typeOfFix" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="departureAerodrome" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="destinationAerodrome" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="runwayDirection" type="xs:string" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="FilterColumnsType">
<xs:annotation>
<xs:documentation>These filters are based on filter example discussed in the SICG</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="sequenceNumber" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="RunwayId" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="LandingTime" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="CallSign" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="MF" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="OTA" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="TTL" type="xs:string" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="FilterUpdatedType">
<xs:annotation>
<xs:documentation>These filters are based on filter example discussed in the SICG</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="periodic" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="sequenceEntryOnChange" type="xs:string" minOccurs="1" maxOccurs="1" />
</xs:choice>
</xs:complexType>
</xs:schema>
If somebody can help ;!!
SOLVED
I changed binding style to document.
Create complexType in the schema for messages with multiple parts and compile without errors or warnings.
My problem is that I have these two files:
1.- marcas.psgi
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Curl::easy;
use WWW::Curl;
use Data::Dumper qw(Dumper);
$Data::Dumper::Sortkeys = 1;
use Plack::Request;
my $app = sub {
### Pasandole los valores desde el $env
my $env = shift;
my $request = Plack::Request->new($env);
my $MARCA1 = "";
my $MARCA2 = "";
my $MARCA3 = "";
my $MARCA4 = "";
my $MARCA5 = "";
if ($request->param('MARCA1')) {
$MARCA1 = $request->param('MARCA1');
}
if ($request->param('MARCA2')) {
$MARCA2 = $request->param('MARCA2');
}
if ($request->param('MARCA3')) {
$MARCA3 = $request->param('MARCA3');
}
if ($request->param('MARCA4')) {
$MARCA4 = $request->param('MARCA4');
}
if ($request->param('MARCA5')) {
$MARCA5 = $request->param('MARCA5');
}
#print system('php','-r','echo "Hola\n";');
my $resultado = `php -r '
include_once "marcas.php";
prueba_curl("$MARCA1","$MARCA2","$MARCA3");
'
`;
#print $resultado;
return [
'200',
[ 'Content-Type' => 'text/plain' ],
[ "<h1>".time()."</h1><br><br>".
"MARCA1: ".$MARCA1."<br>".
"MARCA2: ".$MARCA2."<br>".
"MARCA3: ".$MARCA3."<br><hr><br>".
$resultado."<br><hr><br>" ],
];
}
2.- IFSoft.wsdl
<?xml version="1.0" encoding="iso-8859-1" ?>
<wsdl:definitions name="IFSoft"
targetNamespace="http://ip:5000/cgi-bin/psgi/wsdl/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://ip:5000/cgi-bin/psgi/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<wsdl:types>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://ip:5000/cgi-bin/psgi/wsdl" >
<xsd:element name="marcasConsulta">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MARCA1" type="xsd:string" />
<xsd:element name="MARCA2" type="xsd:string" />
<xsd:element name="MARCA3" type="xsd:string" />
<xsd:element name="MARCA4" type="xsd:string" />
<xsd:element name="MARCA5" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="marcasRespuesta">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TablaMarcas" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="marcasIn">
<wsdl:part element="tns:marcasConsulta" name="parameters" />
</wsdl:message>
<wsdl:message name="marcasOut">
<wsdl:part element="tns:marcasRespuesta" name="parameters" />
</wsdl:message>
<wsdl:portType name="IMarcas" >
<wsdl:operation name="ConsultaMarcas" parameterOrder="MARCA1 MARCA2 MARCA3 MARCA4 MARCA5" >
<wsdl:input message="tns:marcasIn" name="marcasIn" />
<wsdl:input message="tns:marcasOut" name="marcasOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="IMarcas" type="tns:IMarcas">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="ConsultaMarcas">
<soap:operation soapAction="marcasIn" style="document" />
<wsdl:input name="marcasIn" >
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="marcasOut" >
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ConsultaMarcas">
<wsdl:documentation>Consulta de Marcas IF-Software.</wsdl:documentation>
<wsdl:port binding="tns:IMarcas" name="IMarcas" >
<soap:Address location="http://ip:5000/cgi-bin/psgi/marcas.psgi" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
To run the marcas.psgi what I do is:
plackup marcas.psgi
How I can do to access that marcas.psgi through the WSDL? How "public" that WSDL?
Thank you very much for everything.
I had created a wsdl as shown below using zend framework
<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://soap.loc/index/soap" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Example_Manager" targetNamespace="http://soap.loc/index/soap">
<types>
<xsd:schema targetNamespace="http://soap.loc/index/soap">
<xsd:element name="getProducts">
<xsd:complexType/>
</xsd:element>
<xsd:element name="getProductsResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getProductsResult" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getProductResult" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="addProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="data" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="addProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="addProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="deleteProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="data" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="updateProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<portType name="Example_ManagerPort">
<operation name="getProducts">
<documentation>Returns list of all products in database</documentation>
<input message="tns:getProductsIn"/>
<output message="tns:getProductsOut"/>
</operation>
<operation name="getProduct">
<documentation>Returns specified product in database</documentation>
<input message="tns:getProductIn"/>
<output message="tns:getProductOut"/>
</operation>
<operation name="addProduct">
<documentation>Adds new product to database</documentation>
<input message="tns:addProductIn"/>
<output message="tns:addProductOut"/>
</operation>
<operation name="deleteProduct">
<documentation>Deletes product from database</documentation>
<input message="tns:deleteProductIn"/>
<output message="tns:deleteProductOut"/>
</operation>
<operation name="updateProduct">
<documentation>Updates product in database</documentation>
<input message="tns:updateProductIn"/>
<output message="tns:updateProductOut"/>
</operation>
</portType>
<binding name="Example_ManagerBinding" type="tns:Example_ManagerPort">
<soap:binding style="document" transport="http://framework.zend.com"/>
<operation name="getProducts">
<soap:operation soapAction="http://soap.loc/index/soap#getProducts"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="getProduct">
<soap:operation soapAction="http://soap.loc/index/soap#getProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="addProduct">
<soap:operation soapAction="http://soap.loc/index/soap#addProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="deleteProduct">
<soap:operation soapAction="http://soap.loc/index/soap#deleteProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="updateProduct">
<soap:operation soapAction="http://soap.loc/index/soap#updateProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
</binding>
<service name="Example_ManagerService">
<port name="Example_ManagerPort" binding="tns:Example_ManagerBinding">
<soap:address location="http://soap.loc/index/soap"/>
</port>
</service>
<message name="getProductsIn">
<part name="parameters" element="tns:getProducts"/>
</message>
<message name="getProductsOut">
<part name="parameters" element="tns:getProductsResponse"/>
</message>
<message name="getProductIn">
<part name="parameters" element="tns:getProduct"/>
</message>
<message name="getProductOut">
<part name="parameters" element="tns:getProductResponse"/>
</message>
<message name="addProductIn">
<part name="parameters" element="tns:addProduct"/>
</message>
<message name="addProductOut">
<part name="parameters" element="tns:addProductResponse"/>
</message>
<message name="deleteProductIn">
<part name="parameters" element="tns:deleteProduct"/>
</message>
<message name="deleteProductOut">
<part name="parameters" element="tns:deleteProductResponse"/>
</message>
<message name="updateProductIn">
<part name="parameters" element="tns:updateProduct"/>
</message>
<message name="updateProductOut">
<part name="parameters" element="tns:updateProductResponse"/>
</message>
Now the problem is that when i load this in soapui, function names are not being displayed.
Earlier I had a working wsdl using NuSoap, which generated wsdl and could be loaded into SOAPUi and function names were being displayed.
New into web service business, It would be great to know if its wrong with the wsdl itself.
Banging my head on the monitor to get an answer ....... but only things i see is stars.
Sir, you have missed a tag in your wsdl. It's not correct.
Save your wsdl in form of xml and if you will open it in web browser, you will find the error.
I have a server (SoapUI) answering requests for a WSDL.
When sending test requests, my server code is receiving a list of arguments, but I'm trying to achieve is a single argument, of complex type, eg:
{
ingredient_id => INT
something => STRING
...
}
My types are as follow:
<wsdl:types>
<xsd:schema targetNamespace="/ingredient">
<xsd:element name="getIngredientInfo" type="tns:IngredientRequest"></xsd:element>
<xsd:element name="getIngredientInfoResponse" type="tns:ingredient"></xsd:element>
<xsd:complexType name="ingredient">
<xsd:sequence>
<xsd:element name="ingredient_id" type="xsd:int" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="ingredient_name" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_gm" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_vegan" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_vegetarian" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="author_id" type="xsd:int" block="#all" minOccurs="1" maxOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IngredientRequest">
<xsd:sequence>
<xsd:element name="ingredient_id" type="xsd:int"></xsd:element>
<xsd:element name="something" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
Can somebody help me to understand why WSDL is making SoapUI send the arguments as a list of simple arguments, instead of a single complex argument?
EDIT: It might be some problem with sequence tag, but I can't find the issue in that, just need some light.
Thanks in advance!
Sure, I have it right here:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions
name="ingredient"
targetNamespace="/ingredient"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="/ingredient"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema targetNamespace="/ingredient">
<xsd:element name="getIngredientInfo" type="tns:IngredientRequest"></xsd:element>
<xsd:element name="getIngredientInfoResponse" type="tns:ingredient"></xsd:element>
<xsd:complexType name="ingredient">
<xsd:sequence>
<xsd:element name="ingredient_id" type="xsd:int" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="ingredient_name" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_gm" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_vegan" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="status_vegetarian" type="xsd:boolean" minOccurs="1" maxOccurs="1"></xsd:element>
<xsd:element name="author_id" type="xsd:int" block="#all" minOccurs="1" maxOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="IngredientRequest">
<xsd:sequence>
<xsd:element name="ingredient_id" type="xsd:int"></xsd:element>
<xsd:element name="something" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="getIngredientInfoRequest">
<wsdl:part element="tns:getIngredientInfo" name="parameters"/>
</wsdl:message>
<wsdl:message name="getIngredientInfoResponse">
<wsdl:part element="tns:getIngredientInfoResponse"
name="parameters" />
</wsdl:message>
<wsdl:portType name="ingredient">
<wsdl:operation name="getIngredientInfo">
<wsdl:input message="tns:getIngredientInfoRequest"/>
<wsdl:output message="tns:getIngredientInfoResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ingredientSOAP" type="tns:ingredient">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getIngredientInfo">
<soap:operation
soapAction="http://entropy.homelinux.org/kasak/" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ingredient">
<wsdl:port binding="tns:ingredientSOAP" name="ingredientSOAP">
<soap:address location="http://entropy.homelinux.org/kasak/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Still have no hints on it :(
You need to write your WSDL in "Document/literal wrapped"-style. These WSDL-styles are a bit confusing but here is a good comparison.
In essence you will need to wrap your complexType into an element:
<element name="IngredientInfo">
<complexType>
<sequence>
<element name="ingredient_id" type="xsd:int"></xsd:element>
<element name="something" type="xsd:string"></xsd:element>
</sequence>
</complexType>
</element>
and specify this element to be send as message
<message name="getIngredientInfoRequest">
<part name="parameters" element="IngredientInfo"/>
</message>
Thus the resulting SOAP message contains this the IngredientInfo-element as the only child of the SOAP body:
<soap:envelope>
<soap:body>
<IngredientInfo>
<ingredient_id>42</ingredient_id>
<something>"What is..."</something>
</IngredientInfo>
</soap:body>
</soap:envelope>
I don't think WSDL Type (IngredientRequest) is the issue, can you show the complete WSDL, especially the operation which you are testing if that's accepting a array of IngredientRequest type then that is the answer, why SOAP UI is sending a list of arguments.
Ok after using your WSDL for generating a sample request using my SOAP UI here is what I see
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ing="/ingredient">
<soapenv:Header/>
<soapenv:Body>
<ing:getIngredientInfo>
<ingredient_id>?</ingredient_id>
<something>?</something>
</ing:getIngredientInfo>
</soapenv:Body>
</soapenv:Envelope>
So as seen its creating a single getIngredientInfo request object no arrays. Please confirm, try using latest version of SOAP UI if required!
My understanding is that you currently have something like the following (I'm doing a web service call in Java, so I'll example in it):
SOAPCaller.getIngredientInformation(3, "something");
However, what you'd really like is the following:
IngredientRequest ingredientRequest = new IngredientRequest(3, "something");
SOAPCaller.getIngredientInformation(ingredientRequest);
Trying something like what Wierob suggested caused the first case to be what was generated for me. Unfortunately, the only way that I found to achieve the second is to do extra encapsulation which is messy (extra classes are generated). Yet, it allows a single object to be sent and a single object to be returned, rather than a number of objects. Here's an example:
<!-- assume the including of your complex types from above -->
<xsd:element name="getIngredientInfo" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ingredient" type="tns:IngredientRequest" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getIngredientInfoResponse" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ingredientResponse" type="tns:ingredient" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>