2013-04-10 2 views
1

Я создал службу прокси, отображаемую на внешней службе, запущенной на моем локальном хосте внутри Tomcat. Когда я звоню через SoapUI прокси службы я получаю ошибку:Мой прокси-сервис не работает

The endpoint reference (EPR) for the Operation not found is /services/TestWebService and the WSA Action = . If this EPR was previously reachable, please contact the server administrator.

Здесь WSDL прокси-сервера генерируется из моего оригинального WSDL:

<?xml version="1.0" encoding="UTF-8"?> 
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://apache.org/hello_world_soap_http" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:x1="http://apache.org/hello_world_soap_http/types" name="HelloWorld" targetNamespace="http://apache.org/hello_world_soap_http"> 
    <types> 
     <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://apache.org/hello_world_soap_http/types" elementFormDefault="qualified" targetNamespace="http://apache.org/hello_world_soap_http/types"> 
      <simpleType name="MyStringType"> 
       <restriction base="string"> 
        <maxLength value="30"/> 
       </restriction> 
      </simpleType> 
      <element name="sayHi"> 
       <complexType/> 
      </element> 
      <element name="sayHiResponse"> 
       <complexType> 
        <sequence> 
         <element name="responseType" type="string"/> 
        </sequence> 
       </complexType> 
      </element> 
      <element name="greetMe"> 
       <complexType> 
        <sequence> 
         <element name="requestType" type="tns:MyStringType"/> 
        </sequence> 
       </complexType> 
      </element> 
      <element name="greetMeResponse"> 
       <complexType> 
        <sequence> 
         <element name="responseType" type="string"/> 
        </sequence> 
       </complexType> 
      </element> 
      <element name="greetMeOneWay"> 
       <complexType> 
        <sequence> 
         <element name="requestType" type="string"/> 
        </sequence> 
       </complexType> 
      </element> 
      <element name="pingMe"> 
       <complexType/> 
      </element> 
      <element name="pingMeResponse"> 
       <complexType/> 
      </element> 
      <element name="faultDetail"> 
       <complexType> 
        <sequence> 
         <element name="minor" type="short"/> 
         <element name="major" type="short"/> 
        </sequence> 
       </complexType> 
      </element> 
     </schema> 
    </types> 
    <message name="sayHiRequest"> 
     <part name="in" element="x1:sayHi"/> 
    </message> 
    <message name="pingMeResponse"> 
     <part name="out" element="x1:pingMeResponse"/> 
    </message> 
    <message name="greetMeRequest"> 
     <part name="in" element="x1:greetMe"/> 
    </message> 
    <message name="sayHiResponse"> 
     <part name="out" element="x1:sayHiResponse"/> 
    </message> 
    <message name="greetMeResponse"> 
     <part name="out" element="x1:greetMeResponse"/> 
    </message> 
    <message name="pingMeRequest"> 
     <part name="in" element="x1:pingMe"/> 
    </message> 
    <message name="greetMeOneWayRequest"> 
     <part name="in" element="x1:greetMeOneWay"/> 
    </message> 
    <message name="pingMeFault"> 
     <part name="faultDetail" element="x1:faultDetail"/> 
    </message> 
    <portType name="Greeter"> 
     <operation name="sayHi"> 
      <input name="sayHiRequest" message="tns:sayHiRequest"/> 
      <output name="sayHiResponse" message="tns:sayHiResponse"/> 
     </operation> 
     <operation name="greetMe"> 
      <input name="greetMeRequest" message="tns:greetMeRequest"/> 
      <output name="greetMeResponse" message="tns:greetMeResponse"/> 
     </operation> 
     <operation name="greetMeOneWay"> 
      <input name="greetMeOneWayRequest" message="tns:greetMeOneWayRequest"/> 
     </operation> 
     <operation name="pingMe"> 
      <input name="pingMeRequest" message="tns:pingMeRequest"/> 
      <output name="pingMeResponse" message="tns:pingMeResponse"/> 
      <fault name="pingMeFault" message="tns:pingMeFault"/> 
     </operation> 
    </portType> 
    <binding name="Greeter_SOAPBinding" type="tns:Greeter"> 
     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
     <operation name="sayHi"> 
      <soap:operation soapAction="" style="document"/> 
      <input name="sayHiRequest"> 
       <soap:body use="literal"/> 
      </input> 
      <output name="sayHiResponse"> 
       <soap:body use="literal"/> 
      </output> 
     </operation> 
     <operation name="greetMe"> 
      <soap:operation soapAction="" style="document"/> 
      <input name="greetMeRequest"> 
       <soap:body use="literal"/> 
      </input> 
      <output name="greetMeResponse"> 
       <soap:body use="literal"/> 
      </output> 
     </operation> 
     <operation name="greetMeOneWay"> 
      <soap:operation soapAction="" style="document"/> 
      <input name="greetMeOneWayRequest"> 
       <soap:body use="literal"/> 
      </input> 
     </operation> 
     <operation name="pingMe"> 
      <soap:operation style="document"/> 
      <input> 
       <soap:body use="literal"/> 
      </input> 
      <output> 
       <soap:body use="literal"/> 
      </output> 
      <fault name="pingMeFault"> 
       <soap:fault name="pingMeFault" use="literal"/> 
      </fault> 
     </operation> 
    </binding> 
    <service name="SOAPService"> 
     <port name="SoapPort" binding="tns:Greeter_SOAPBinding"> 
      <soap:address location="http://WIN-PC:8280/services/TestWebService"/> 
     </port> 
    </service> 
</definitions> 

В чем проблема? операция SOAPAction пуста? Другие ?

+0

попробуйте получить доступ к wsdl из браузера или использовать TcpMon, чтобы узнать, что на самом деле происходит ... –

+0

Доступ к wsdl через браузер отлично работает, и в журналах ошибка заключается в том, что диспетчер не может определить EndPoint – user2252607

ответ

0

Какой порт вы используете? Ваш URL должен быть чем-то вроде этого.

http://localhost:8280/services/TestWebService 
+0

URL-адрес конечной точки бэкэнда, на который нацелен прокси-сервер, корректен. Действительно, если я использую TryIt в этом прокси-сервисе, я могу присоединиться к бэкэнд, поэтому URL-адрес определен. Как вы думаете, проблема не в том, что SOAPAction, связанный с моими операциями, является нулевым в предоставленном wsdl. Nicolas – user2252607

0

Waht - это конечная точка обслуживания, которую вы указали из SOAPUI? Это что-то типа;

http://localhost:8280/services/yourproxy 

И каков ваш запрос, используемый для вызова API? Если ваш прокси-сервер связан с сервисом wsdl (using <publishwsdl> option), ваш запрос должен быть сопоставлен с этим. Ели вы можете использовать фактический запрос, который вы используете для вызова фактического вспомогательного сервиса.

+0

Я загрузил версию ESB 4.5.1 и отлично работает, так что есть ошибка в 4.6 ... – user2252607

+0

Пожалуйста, не могли бы вы подтвердить, что это хорошая ошибка в ESB 4.6, поскольку она отлично работает в версии 4.5.1? – user2252607