1 Reply Latest reply on Dec 3, 2006 11:41 PM by Steve

    Second parameter missing from generated WSDL

    Craig McDaniel Newbie

      I have the following interface that I am exposing via web service:

      public interface StandardWebService {
       public PurchaseResult purchaseNew(PurchaseTransactionEntity e, Collection<PurchaseTransactionDetailEntity> c);
       public ReturnResult purchaseReturn(PurchaseTransactionEntity e, Collection<PurchaseTransactionDetailEntity> c);
       public VoidResult purchaseVoid(PurchaseTransactionEntity e);
      }
      


      When I deploy my WAR file to JBoss, it creates the following WSDL. Notice that the purchaseNew and purchaseReturn methods only have the first parameter (PurchaseTransactionEntity). Perhaps it does not want to deal with collections as parameters? This is on JBoss 4.0.4GA with JBossWS 1.0.4GA and JBossEJB 3.0-rc9fd.

      <definitions name="StandardWebServiceService"
       targetNamespace="http://webservice.ejb.mc.foo.com/jaws"
       xmlns="http://schemas.xmlsoap.org/wsdl/"
       xmlns:ns1="http://sql.java/jaws"
       xmlns:ns2="http://entity.ejb.mc.foo.com/jaws"
       xmlns:ns3="http://result.ejb.mc.foo.com/jaws"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:tns="http://webservice.ejb.mc.foo.com/jaws"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <types>
       <schema elementFormDefault="qualified"
       targetNamespace="http://sql.java/jaws"
       xmlns="http://www.w3.org/2001/XMLSchema"
       xmlns:ns1="http://webservice.ejb.mc.foo.com/jaws"
       xmlns:ns2="http://entity.ejb.mc.foo.com/jaws"
       xmlns:ns4="http://result.ejb.mc.foo.com/jaws"
       xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:tns="http://sql.java/jaws"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <import namespace="http://result.ejb.mc.foo.com/jaws"/>
       <import namespace="http://entity.ejb.mc.foo.com/jaws"/>
       <import namespace="http://webservice.ejb.mc.foo.com/jaws"/>
       <complexType name="Date">
       <sequence>
       <element name="hours" type="int"/>
       <element name="minutes" type="int"/>
       <element name="seconds" type="int"/>
       <element name="time" type="long"/>
       </sequence>
       </complexType>
       <complexType name="Timestamp">
       <sequence>
       <element name="nanos" type="int"/>
       <element name="time" type="long"/>
       </sequence>
       </complexType>
       </schema>
       <schema elementFormDefault="qualified"
       targetNamespace="http://result.ejb.mc.foo.com/jaws"
       xmlns="http://www.w3.org/2001/XMLSchema"
       xmlns:ns1="http://webservice.ejb.mc.foo.com/jaws"
       xmlns:ns2="http://entity.ejb.mc.foo.com/jaws"
       xmlns:ns3="http://sql.java/jaws"
       xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:tns="http://result.ejb.mc.foo.com/jaws"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <import namespace="http://sql.java/jaws"/>
       <import namespace="http://entity.ejb.mc.foo.com/jaws"/>
       <import namespace="http://webservice.ejb.mc.foo.com/jaws"/>
       <complexType name="PurchaseResult">
       <sequence>
       <element name="failMsg" nillable="true" type="string"/>
       <element name="status" nillable="true" type="tns:ResultStatus"/>
       <element name="transaction" nillable="true"
       type="ns2:PurchaseTransactionEntity"/>
       </sequence>
       </complexType>
       <complexType name="ResultStatus">
       <sequence/>
       </complexType>
       <complexType name="ReturnResult">
       <sequence>
       <element name="status" nillable="true" type="tns:ResultStatus"/>
       <element name="transaction" nillable="true"
       type="ns2:PurchaseTransactionEntity"/>
       </sequence>
       </complexType>
       <complexType name="VoidResult">
       <sequence>
       <element name="purchaseTransactionEntity" nillable="true"
       type="ns2:PurchaseTransactionEntity"/>
       <element name="status" nillable="true" type="tns:ResultStatus"/>
       </sequence>
       </complexType>
       </schema>
       <schema elementFormDefault="qualified"
       targetNamespace="http://entity.ejb.mc.foo.com/jaws"
       xmlns="http://www.w3.org/2001/XMLSchema"
       xmlns:ns1="http://webservice.ejb.mc.foo.com/jaws"
       xmlns:ns3="http://sql.java/jaws"
       xmlns:ns4="http://result.ejb.mc.foo.com/jaws"
       xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:tns="http://entity.ejb.mc.foo.com/jaws"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <import namespace="http://sql.java/jaws"/>
       <import namespace="http://result.ejb.mc.foo.com/jaws"/>
       <import namespace="http://webservice.ejb.mc.foo.com/jaws"/>
       <complexType name="PurchaseTransactionEntity">
       <sequence>
       <element name="address1" nillable="true" type="string"/>
       <element name="address2" nillable="true" type="string"/>
       <element name="agentResultCd" nillable="true" type="string"/>
       <element name="birthDt" nillable="true" type="ns3:Date"/>
       <element name="city" nillable="true" type="string"/>
       <element name="comments" nillable="true" type="string"/>
       <element name="creationSourceCd" nillable="true" type="string"/>
       <element name="creationTs" nillable="true" type="ns3:Timestamp"/>
       <element name="creationUser" nillable="true" type="string"/>
       <element name="delayedInd" nillable="true" type="string"/>
       <element name="deniedInd" nillable="true" type="string"/>
       <element name="firstName" nillable="true" type="string"/>
       <element name="fraudInd" nillable="true" type="string"/>
       <element name="idExpDt" nillable="true" type="ns3:Date"/>
       <element name="idNbr" nillable="true" type="string"/>
       <element name="idStateCd" nillable="true" type="string"/>
       <element name="idTypeCd" nillable="true" type="string"/>
       <element name="lastChangeSourceCd" nillable="true" type="string"/>
       <element name="lastChangeTs" nillable="true" type="ns3:Timestamp"/>
       <element name="lastChangeUser" nillable="true" type="string"/>
       <element name="lastName" nillable="true" type="string"/>
       <element name="manualInd" nillable="true" type="string"/>
       <element name="middleName" nillable="true" type="string"/>
       <element name="pharmacySid" nillable="true" type="string"/>
       <element name="pharmacyTrxId" nillable="true" type="string"/>
       <element name="postalCd" nillable="true" type="string"/>
       <element name="processTime" nillable="true" type="int"/>
       <element name="sessionId" nillable="true" type="string"/>
       <element name="siteId" nillable="true" type="int"/>
       <element name="soldInd" nillable="true" type="string"/>
       <element name="stateCd" nillable="true" type="string"/>
       <element name="suffixName" nillable="true" type="string"/>
       <element name="suspicionCd" nillable="true" type="string"/>
       <element name="transactionCd" nillable="true" type="string"/>
       <element name="transactionDt" nillable="true" type="ns3:Timestamp"/>
       <element name="transactionSid" nillable="true" type="string"/>
       <element name="voidAuthUser" nillable="true" type="string"/>
       <element name="voidTs" nillable="true" type="ns3:Timestamp"/>
       <element name="voidUser" nillable="true" type="string"/>
       </sequence>
       </complexType>
       </schema>
       <schema elementFormDefault="qualified"
       targetNamespace="http://webservice.ejb.mc.foo.com/jaws"
       xmlns="http://www.w3.org/2001/XMLSchema"
       xmlns:ns2="http://entity.ejb.mc.foo.com/jaws"
       xmlns:ns3="http://sql.java/jaws"
       xmlns:ns4="http://result.ejb.mc.foo.com/jaws"
       xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:tns="http://webservice.ejb.mc.foo.com/jaws"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <import namespace="http://sql.java/jaws"/>
       <import namespace="http://result.ejb.mc.foo.com/jaws"/>
       <import namespace="http://entity.ejb.mc.foo.com/jaws"/>
       <complexType name="purchaseNew">
       <sequence>
       <element name="PurchaseTransactionEntity_1" nillable="true" type="ns2:PurchaseTransactionEntity"/>
       </sequence>
       </complexType>
       <complexType name="purchaseNewResponse">
       <sequence>
       <element name="result" nillable="true" type="ns4:PurchaseResult"/>
       </sequence>
       </complexType>
       <complexType name="purchaseReturn">
       <sequence>
       <element name="PurchaseTransactionEntity_1" nillable="true" type="ns2:PurchaseTransactionEntity"/>
       </sequence>
       </complexType>
       <complexType name="purchaseReturnResponse">
       <sequence>
       <element name="result" nillable="true" type="ns4:ReturnResult"/>
       </sequence>
       </complexType>
       <complexType name="purchaseVoid">
       <sequence>
       <element name="PurchaseTransactionEntity_1" nillable="true" type="ns2:PurchaseTransactionEntity"/>
       </sequence>
       </complexType>
       <complexType name="purchaseVoidResponse">
       <sequence>
       <element name="result" nillable="true" type="ns4:VoidResult"/>
       </sequence>
       </complexType>
       <element name="purchaseNew" type="tns:purchaseNew"/>
       <element name="purchaseNewResponse" type="tns:purchaseNewResponse"/>
       <element name="purchaseReturn" type="tns:purchaseReturn"/>
       <element name="purchaseReturnResponse" type="tns:purchaseReturnResponse"/>
       <element name="purchaseVoid" type="tns:purchaseVoid"/>
       <element name="purchaseVoidResponse" type="tns:purchaseVoidResponse"/>
       </schema>
       </types>
       <message name="StandardWebService_purchaseReturn">
       <part element="tns:purchaseReturn" name="parameters"/>
       </message>
       <message name="StandardWebService_purchaseVoidResponse">
       <part element="tns:purchaseVoidResponse" name="result"/>
       </message>
       <message name="StandardWebService_purchaseReturnResponse">
       <part element="tns:purchaseReturnResponse" name="result"/>
       </message>
       <message name="StandardWebService_purchaseVoid">
       <part element="tns:purchaseVoid" name="parameters"/>
       </message>
       <message name="StandardWebService_purchaseNew">
       <part element="tns:purchaseNew" name="parameters"/>
       </message>
       <message name="StandardWebService_purchaseNewResponse">
       <part element="tns:purchaseNewResponse" name="result"/>
       </message>
       <portType name="StandardWebService">
       <operation name="purchaseNew">
       <input message="tns:StandardWebService_purchaseNew"/>
       <output message="tns:StandardWebService_purchaseNewResponse"/>
       </operation>
       <operation name="purchaseReturn">
       <input message="tns:StandardWebService_purchaseReturn"/>
       <output message="tns:StandardWebService_purchaseReturnResponse"/>
       </operation>
       <operation name="purchaseVoid">
       <input message="tns:StandardWebService_purchaseVoid"/>
       <output message="tns:StandardWebService_purchaseVoidResponse"/>
       </operation>
       </portType>
       <binding name="StandardWebServiceBinding" type="tns:StandardWebService">
       <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
       <operation name="purchaseNew">
       <soap:operation soapAction=""/>
       <input>
       <soap:body use="literal"/>
       </input>
       <output>
       <soap:body use="literal"/>
       </output>
       </operation>
       <operation name="purchaseReturn">
       <soap:operation soapAction=""/>
       <input>
       <soap:body use="literal"/>
       </input>
       <output>
       <soap:body use="literal"/>
       </output>
       </operation>
       <operation name="purchaseVoid">
       <soap:operation soapAction=""/>
       <input>
       <soap:body use="literal"/>
       </input>
       <output>
       <soap:body use="literal"/>
       </output>
       </operation>
       </binding>
       <service name="StandardWebServiceService">
       <port binding="tns:StandardWebServiceBinding" name="StandardWebServicePort">
       <soap:address location="http://10.11.20.18:8080/mcWS"/>
       </port>
       </service>
      </definitions>