SoapU я не нашел свой веб-сервис - PullRequest
0 голосов
/ 07 февраля 2012

Итак, я боролся с веб-сервисами уже пару дней, и, похоже, у меня наконец-то был прорыв.

Я следовал этому руководству по письму, и мой веб-сервис запущен и работает. Единственная проблема в том, что я не могу проверить это через soapUI.

Если я захожу на http://localhost:8084/soapwebservices Отображаются данные о моем веб-сервисе, например, местоположение wsdl и так далее. Судя по этому, ссылка верная.

Но когда я пытаюсь отправить этот запрос ему:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="soapwebservices.jdevelop.eu">
   <soapenv:Header/>
   <soapenv:Body>
      <soap:calculateValues>
         <value1>10</value1>
         <value2>3.21</value2>
      </soap:calculateValues>
   </soapenv:Body>
</soapenv:Envelope>

Я получаю ошибку 404:

<head><title>Not Found (404)</title></head>
<body><h1>Not Found (404)</h1>
<b>Original request:</b> http://localhost:8084/soapwebservices<br><br>
<b>Not found request:</b> http://localhost:8084/soapwebservices</body>

Вот мой WSDL:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns:ns1="soapwebservices.jdevelop.eu" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns="http://schemas.xmlsoap.org/soap/encoding/" name="SOAPWebServices" targetNamespace="soapwebservices.jdevelop.eu">
    <types>
        <xsd:schema>
            <xsd:import namespace="soapwebservices.jdevelop.eu" schemaLocation="webservices.xsd"/>
        </xsd:schema>
    </types>
    <message name="calculateValues">
        <part name="calculateValues" element="ns1:calculateValues"/>
    </message>
    <message name="calculateValuesResponse">
        <part name="calculateValuesResponse" element="ns1:calculateValuesResponse"/>
    </message>
    <portType name="SOAPWebServices">
        <operation name="getCalculateValues">
            <input message="ns1:calculateValues"/>
            <output message="ns1:calculateValuesResponse"/>
        </operation>
    </portType>
    <binding name="SOAPWebServicesPortBinding" type="ns1:SOAPWebServices">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="getCalculateValues">
            <soap:operation soapAction="urn:http://blog.jdevelop.eu/services/getCalculateValues"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="SOAPService">
        <port name="WebServices" binding="ns1:SOAPWebServicesPortBinding">
            <soap:address location="http://blog.jdevelop.eu:80/services"/>
        </port>
    </service>
</definitions>

В чем здесь может быть проблема?

Я использую Netbeans 6.0.1, Apache Tomcat 6.0 и Java SDK 1.7 Спасибо!

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Пара наблюдений:

  1. В сообщении SOAP имя отправляемой вами операции равно CalculateValues ​​ (<soap:calculateValues>), тогда как имя операции, упомянутое вWSDL равен getCalculateValues ​​ (<operation name="getCalculateValues">).Это может быть причиной ошибки 404, так как операция вычисления значений не определена.

  2. Я предполагаю, что вы не публикуете сообщение SOAP по URL-адресу службы, указанному вWSDL (<soap:address location="http://blog.jdevelop.eu:80/services"/>).

0 голосов
/ 09 марта 2015

Проверьте namespce в вашем классе конечной точки и схеме, оба должны быть одинаковыми

...