2012-02-07 6 views
0

私は数日間Webサービスに苦労していました。SoapUIが私のWebサービスを見つけられない

私は手紙にthisチュートリアルに続き、私は自分のWebサービスを起動して実行しています。唯一の問題は、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を使用しています ありがとう!観測の

+0

同じである必要があり、あなたのエンドポイントクラスのnamespceとスキーマを確認してください:// localhostを:8084/soapwebservices /?wsdl – tartak

+0

特定の場所、または一般的には? –

+0

SoapUIで新しいプロジェクトを作成するとき、名前(最初のテキストボックス)とサービスのアドレス(これは/?wsdlで終わるはずです) – tartak

答えて

2

カップル:WSDLで述べた操作名がgetCalculateValues<operation name="getCalculateValues">)であるのに対し、あなたのSOAPメッセージで

  1. 、あなたが送信している操作名はcalculateValues<soap:calculateValues>)です。これは、calculateValues操作が定義されていないため、404エラーの原因になっている可能性があります。

  2. WSDL(<soap:address location="http://blog.jdevelop.eu:80/services"/>)に記載されているサービスURLにSOAPメッセージを投稿していないと仮定します。

+0

本当にありました。 Meh、そのようなルーキーミス。 –

0

私はあなたがWSDL ---_のhttpを含む完全なリンクを提供する必要があると思うの両方が