2013-03-18 23 views
8

Otrzymuję ten komunikat, gdy próbuję utworzyć nowy projekt SoapUI i zaimportować plik WSDL do symulacji usługi sieci Web. Komunikat o błędzie wydaje się niekompletny, ponieważ nie mówi, który tag nie jest zamknięty.Błąd podczas importowania pliku WSDL w SoapUI

Error loading [file:\C:\chad.wsdl]: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: does not close tag

Oto WSDL:

<wsdl:definitions name="Chad" targetNamespace="http://www.examples.com/wsdl/Chad.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.examples.com/wsdl/Chad.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

     <wsdl:message name="SayHiRequest"> 
      <wsdl:part name="text" type="xsd:string"/> 
     </wsdl:message> 
     <wsdl:message name="SayHiResponse"> 
      <wsdl:part name="text" type="xsd:string"/> 
     </wsdl:message> 

     <wsdl:portType name="Hello_PortType"> 
      <wsdl:operation name="sayHi"> 
      <wsdl:input message="tns:SayHiRequest"/> 
      <wsdl:output message="tns:SayHiResponse"/> 
      </wsdl:operation> 
     </wsdl:portType> 

     <wsdl:binding name="Hello_Binding" type="tns:Hello_PortType"> 
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> 
      <wsdl:operation name="sayHi"> 
       <soap:operation soapAction="sayHi"/> 
       <wsdl:input> 
       <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:chadservice" use="encoded"/> 
       </wsdl:input> 
       <wsdl:output> 
       <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:chadservice" use="encoded"/> 
       </wsdl:output> 
      </wsdl:operation> 
     </wsdl:binding> 

     <wsdl:service name="Hello_Service"> 
      <wsdl:documentation>WSDL File for HelloService</documentation> 
      <wsdl:port binding="tns:Hello_Binding" name="Hello_Port"> 
      <soap:address location="http://www.examples.com/chad/"/> 
      </wsdl:port> 
     </wsdl:service> 
    </wsdl:definitions> 

Moja WSDL wydaje się potwierdzić.

Znalazłem podobne problemy w trybie online, w których wsdl jest importowany z adresu URL http, a import powoduje ten sam błąd, ale importuję bezpośrednio z mojego dysku C (nie przez http), więc sugerowane rozwiązania mają nie zadziałało.

Odpowiedz

2

Wystąpił problem nazw w poniższej linii

Oryginalna linia

<wsdl:documentation>WSDL File for HelloService</documentation> 

Zmieniono

<wsdl:documentation>WSDL File for HelloService</wsdl:documentation> 

Oto aktualizowane WSDL

<?xml version='1.0' encoding="UTF-8"?> 
<wsdl:definitions name="Chad" targetNamespace="http://www.examples.com/wsdl/Chad.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.examples.com/wsdl/Chad.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <wsdl:message name="SayHiRequest"> 
      <wsdl:part name="text" type="xsd:string"/> 
     </wsdl:message> 
     <wsdl:message name="SayHiResponse"> 
      <wsdl:part name="text" type="xsd:string"/> 
     </wsdl:message> 

     <wsdl:portType name="Hello_PortType"> 
      <wsdl:operation name="sayHi"> 
      <wsdl:input message="tns:SayHiRequest"/> 
      <wsdl:output message="tns:SayHiResponse"/> 
      </wsdl:operation> 
     </wsdl:portType> 

     <wsdl:binding name="Hello_Binding" type="tns:Hello_PortType"> 
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> 
      <wsdl:operation name="sayHi"> 
       <soap:operation soapAction="sayHi"/> 
       <wsdl:input> 
       <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:chadservice" use="encoded"/> 
       </wsdl:input> 
       <wsdl:output> 
       <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:chadservice" use="encoded"/> 
       </wsdl:output> 
      </wsdl:operation> 
     </wsdl:binding> 

     <wsdl:service name="Hello_Service"> 
      <wsdl:documentation>WSDL File for HelloService</wsdl:documentation> 
      <wsdl:port binding="tns:Hello_Binding" name="Hello_Port"> 
      <soap:address location="http://www.examples.com/chad/"/> 
      </wsdl:port> 
     </wsdl:service> 
    </wsdl:definitions> 
+1

Używane narzędzie do sprawdzania online [http://www.xmlvalidation.com] (http://www.xmlvalidation.com), które natychmiast wskazywało na ten sam błąd. – kabeleced

0

Byłem w stanie załadować WSDL w soapUI 4.5.2 bez otrzymywania błędu. Chociaż otrzymałem poniższy błąd.

Tue Aug 20 11:30:21 ADT 2013:ERROR:Could not find element [{https://something.com/service/types}IsAvailableRequest] specified in part [parameters] 
0

Miałem ten sam błąd, ale inną przyczynę:

Instead of: 
https://sitename.com/prefix/app/services.asxm 

Use: 
https://sitename.com/prefix/app/services.asxm?WSDL 

nie użył SOAP przed i to nie było oczywiste, że brakowało WSDL z URL?. Publikowanie na wypadek, gdyby ktoś inny miał ten sam problem.

Powiązane problemy