2017-04-24 4 views
0

は、私は次のいずれかと好奇心の問題を持っている私のWSDLの私はSOAPUIの新しいSOAP-プロジェクトを作成し、WSDLをインポートするとこのWSDLの問題点は何ですか? SOAPUIがこのWSDLから間違った要求を生成するのはなぜですか?

、SOAPUIは、例えば、要求を生成しますが、この要求は、操作の名前空間と要素が欠落しています。私は参考のために最後に含めるだろうというのが私のWSDLおよびXSDに基づいて

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <customers> 
     <!--Zero or more repetitions:--> 
     <customerId>?</customerId> 
     </customers> 
    </soapenv:Body> 
</soapenv:Envelope> 

、私は、要求がよりこのように見えるように期待:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:look="http://noa.otto.de/onlinecustomer/webservice/lookupadditionaldata"> 
    <soapenv:Header/> 
    <soapenv:Body> 
    <look:requestAdditionalCustomerData> 
      <look:customers> 
      <!--Zero or more repetitions:--> 
      <look:customerId>?</look:customerId> 
      </look:customers> 
     </look:requestAdditionalCustomerData> 
    </soapenv:Body> 
</soapenv:Envelope> 

しかし、場合でも、私「正しいです」このような要求は手動では機能しませんし、サーバ側でSOAPFault Exceptionを生成します。「WSコンテキストから操作名を取得できませんでした」

これはSOAPUIの能力に問題がない可能性があることを示していますWSDLから正しい要求を生成することができますが、私の能力はd正しいWSDLを作成してください:-)

問題は、私が試すことができるアイデアはもうありません。私はこれを2日間ほど行っています。だから、他の人が考えているかもしれないと思った。

ご意見はお寄せいただきありがとうございます。ここで

よろしく マリオ

ああ、それは重要な場合には、Webサービスは、GlassFishの/ペーシュ・カショーロに4.1.1

を展開されているが、私のWSDLです:

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:webservice="http://noa.otto.de/onlinecustomer/webservice/lookupadditionaldata" xmlns:lookupadditionaldata="http://noa.otto.de/onlinecustomer/schema/lookupadditionaldata" name="LookupAdditionalUniservData" targetNamespace="http://noa.otto.de/onlinecustomer/webservice/lookupadditionaldata"> 
<types> 
    <xsd:schema> 
    <xsd:import namespace="http://noa.otto.de/onlinecustomer/schema/lookupadditionaldata" schemaLocation="http://blade228.puc.ov.otto.de:52301/onlinecustomer/LookupAdditionalUniservData?xsd=1"/> 
    </xsd:schema> 
</types> 

<message name="requestAdditionalCustomerDataRequest"> 
    <part name="customers" type="lookupadditionaldata:intArray"/> 
</message> 

<message name="requestAdditionalCustomerDataResponse"> 
    <part name="customerData" type="lookupadditionaldata:customerDataArray"/> 
</message> 

<portType name="LookupAdditionalUniservDataPort"> 
    <operation name="requestAdditionalCustomerData"> 
     <input message="webservice:requestAdditionalCustomerDataRequest"/> 
     <output message="webservice:requestAdditionalCustomerDataResponse"/> 
    </operation> 
</portType> 

<binding name="LookupAdditionalUniservDataPortBinding" type="webservice:LookupAdditionalUniservDataPort"> 
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> 
    <operation name="requestAdditionalCustomerData"> 
     <documentation>collects customer account information for a given list of idCustomers</documentation> 
     <soap:operation soapAction="requestAdditionalCustomerData" style="document"/> 
     <input> 
      <soap:body use="literal"/> 
     </input> 
     <output> 
      <soap:body use="literal"/> 
     </output> 
    </operation> 
</binding> 

<service name="LookupAdditionalUniservDataService"> 
    <documentation>this service provides a means for the CASS/ENS/Uniserv system to collect additional customer account data</documentation> 
    <port name="LookupAdditionalUniservDataPort" binding="webservice:LookupAdditionalUniservDataPortBinding"> 
     <soap:address location="http://blade228.puc.ov.otto.de:52301/onlinecustomer/LookupAdditionalUniservData"/> 
    </port> 
</service> 

</definitions> 

、ここでは、 XSD:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://noa.otto.de/onlinecustomer/schema/lookupadditionaldata" targetNamespace="http://noa.otto.de/onlinecustomer/schema/lookupadditionaldata" version="1.0"> 

    <xs:complexType name="customerData"> 
     <xs:sequence> 
      <xs:element name="accountBalance" type="xs:long" minOccurs="0"/> 
      <xs:element name="birthday" type="xs:dateTime" minOccurs="0"/> 
      <xs:element name="blockedOrderValue" type="xs:int" minOccurs="0"/> 
      <xs:element name="city" type="xs:string" minOccurs="0"/> 
      <xs:element name="combinedCreditWorthinessClass" type="xs:short" minOccurs="0"/> 
      <xs:element name="companyId" type="xs:short" minOccurs="0"/> 
      <xs:element name="creationDate" type="xs:dateTime" minOccurs="0"/> 
      <xs:element name="custNo" type="xs:string" minOccurs="0"/> 
      <xs:element name="blockades" minOccurs="0"> 
       <xs:complexType> 
        <xs:sequence> 
         <xs:element name="blockade" type="tns:customerBlockade" minOccurs="0" maxOccurs="unbounded"/> 
        </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
      <xs:element name="dunningLevel" type="xs:string" minOccurs="0"/> 
      <xs:element name="email" type="xs:string" minOccurs="0"/> 
      <xs:element name="errorMessage" type="xs:string" minOccurs="0"/> 
      <xs:element name="externalAccountBlockingSign" type="xs:byte" minOccurs="0"/> 
      <xs:element name="externalBlockingSign" type="xs:byte" minOccurs="0"/> 
      <xs:element name="externalCustomerType" type="xs:short" minOccurs="0"/> 
      <xs:element name="firstName" type="xs:string" minOccurs="0"/> 
      <xs:element name="houseNo" type="xs:string" minOccurs="0"/> 
      <xs:element name="id" type="xs:int" minOccurs="0"/> 
      <xs:element name="lastName" type="xs:string" minOccurs="0"/> 
      <xs:element name="openBackorder" type="xs:int" minOccurs="0"/> 
      <xs:element name="phone" type="xs:string" minOccurs="0"/> 
      <xs:element name="salutation" type="xs:string" minOccurs="0"/> 
      <xs:element name="street" type="xs:string" minOccurs="0"/> 
      <xs:element name="weeklyCredit" type="xs:long" minOccurs="0"/> 
      <xs:element name="zip" type="xs:string" minOccurs="0"/> 
     </xs:sequence> 
    </xs:complexType> 

    <xs:complexType name="customerBlockade"> 
     <xs:sequence> 
      <xs:element name="blockadeAge" type="xs:long" minOccurs="0"/> 
      <xs:element name="blockadeName" type="xs:string" minOccurs="0"/> 
      <xs:element name="blockadeNumber" type="xs:short" minOccurs="0"/> 
      <xs:element name="blockadeState" type="tns:blockadeState" minOccurs="0"/> 
      <xs:element name="dominantBlockadeSign" type="xs:boolean" minOccurs="0"/> 
      <xs:element name="paymentKey" type="xs:byte" minOccurs="0"/> 
      <xs:element name="paymentKeyName" type="xs:string" minOccurs="0"/> 
     </xs:sequence> 
    </xs:complexType> 

    <xs:simpleType name="blockadeState"> 
     <xs:restriction base="xs:string"> 
      <xs:enumeration value="ACTIVE"/> 
      <xs:enumeration value="SUSPENDED"/> 
     </xs:restriction> 
    </xs:simpleType> 

    <xs:complexType name="customerDataArray" final="#all"> 
     <xs:sequence> 
      <xs:element name="item" type="tns:customerData" minOccurs="0" maxOccurs="unbounded" nillable="true"/> 
     </xs:sequence> 
    </xs:complexType> 
    <element name="customerDataArray" type="tns:customerDataArray"/> 

    <xs:complexType name="intArray" final="#all"> 
     <xs:sequence> 
      <xs:element name="customerId" type="xs:int" minOccurs="0" maxOccurs="unbounded" nillable="true"/> 
     </xs:sequence> 
    </xs:complexType> 
    <element name="intArray" type="tns:intArray"/> 

</xs:schema> 
+0

wsdlを複数回インポートしましたか?そして、後でスキーマ定義を更新し、再インポートしましたか? – Rao

+0

はい、それは私がサーバー側で働くためにwebserviceを取得し、その間に私はsoap uiにwsdlを数回(ctrl + u)インポートしたまで、反復プロセスのようなものでした。これはなぜ関連しているのですか?あなたは解決策に逃げたようですが、私はまだそれを得ていませんでした: –

+0

SoapUIはwsdl/xsdの定義をキャッシュします。新しいプロジェクトで最新のwsdlを試してみて、動作が同じか、希望のものか確認してください。 – Rao

答えて

0

この問題の原因はわかりました。これはWSDLのエラーです。 <message>の定義では、<part>要素の中に属性type=""を使用しています。 type=""の代わりにelement=""であったはずです。

関連する問題