web-dev-qa-db-ja.com

見つからない操作のエンドポイント参照(EPR)は

この数日間、次のエラーに苦労しています。

Wsdl 2.0ファイルからwsdl2Javaツールを使用して、サーバーとクライアントのコードを生成しました。 Webサービスを呼び出すと、次のエラーが表示されます。

org.Apache.axis2.AxisFault: The endpoint reference (EPR) for the
Operation not found is
/axis2/services/MyService/authentication/?username=Denise345&password=xxxxx
and the WSA Action = null

私のサービスは、利用可能なすべてのメソッドを含むaxis2 Webページに表示されます。 TcpMonからの出力は次のとおりです。

==============
Listen Port: 8090
Target Host: 127.0.0.1
Target Port: 8080
==== Request ====
GET /axis2/services/MyService/authentication/?username=Denise345&password=xxxxx
HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
SOAPAction: ""
User-Agent: Axis2
Host: 127.0.0.1:8090

==== Response ====
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 12 May 2011 15:53:20 GMT
Connection: close

12b
<soapenv:Reason xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
  <soapenv:Text xml:lang="en-US">The endpoint reference (EPR) for the
Operation not found is
/axis2/services/MyService/authentication/?username=Denise345&password=xxxxx
and the WSA Action = null</soapenv:Text></soapenv:Reason>
0

===============

私は使っている:

  • 軸2-1.5.4
  • Tomcat 7.0.8
  • wsdl 2.0ファイル

助けてください!

13
Denise Wu

私の場合、HTTP POSTのContent-Typeが間違っていたことが原因でした。 text/xmlに設定すると、問題が解決しました。

14
arturo

?wsdlを文字列に追加してみてください。

11
Pinch

http://wso2.com/library/176/ のEran Chinthakaによる説明

Axis2エンジンがメッセージのサービスと操作を見つけることができない場合、すぐに失敗し、送信者に障害を送信します。サービスが見つからない場合-「サービスが見つからないEPRは」サービスが見つかったが操作ではない場合-「操作が見つからないEPRはあり、WSAアクション=」

あなたの場合、サービスは見つかりましたが、操作は見つかりません。 Axis2エンジンは、要求された操作を把握するためにSOAPActionを使用します。この例では、SOAPActionが欠落しているため、SOAPActionヘッダーを定義しようとします

6
jmhostalet

各操作のソースWSDLがSOAPAction値を定義していないために発生します。

例えば.

<soap12:operation soapAction="" style="document"/>  

彼は軸サーバーにとって重要です。

Netbeansなどでサービスを作成した場合は、@ WebMethodタグにvalueアクションを設定することを忘れないでください

例:@WebMethod(action = "hello"、operationName = "hello")

これにより、SOAPAction値が自動的に作成されます。

5
William Aldana

このエラーは、サービスの呼び出し中にurサービスのwsdlファイルを取得していないために発生します。

jstは、urサービスのwsdlファイルがそこにあるかどうかを確認します->サーバーを実行し、ブラウザからローカルホストでaxis 2アプリを実行し、デプロイされたサービスをチェックしてサービスをクリックすると、urサービスのwsdlファイルが表示されます.....またはクライアントファイルのサービスパスを確認してください。

問題を解決するのに役立つと思います...

4
Ankit Adlakha

カールを使用して石鹸のリクエストを送信するのと同じ問題がありました。 「content-type:text/xml」をhttpヘッダーに追加することで解決しました。

これが誰かの助けになることを願っています。

2
Lordwhizy

Action is nullは、指定されたSOAP Message(Request XML)にActionがないことを意味します。Actionを設定する必要がありますSOAP

Java.net.URL endpoint = new URL("<URL>"); //sets URL

MimeHeaders headers = message.getMimeHeaders(); // getting MIME Header

headers.addHeader("SOAPAction", "<SOAP Action>"); //add Action To Header

SOAPMessage response = soapConnection.call(<SOAPMessage>, endpoint); //then Call

soapConnection.close(); // then Close the connection
2
Sudheer

遅い答えですが:

私はあなたがGETを行うのを見ます-POST?

1
blabla999

Websphere Application Serverでは、同じ状況で、サーバーが停止している間にTempフォルダーを削除するのに役立ちました。

サービスのパッケージが変更された状況に遭遇しました。

0
JRA_TLL

クライアントを介して呼び出すときに、操作名(認証)の後に余分な「/」を削除してみてください

/axis2/services/MyService/authentication?username=Denise345&password=xxxxx
0
FearlessHyena

WSDLファイルを開き、以下を見つけます。

<soap:operation soapAction="[actionNameIsHere]" style="document"/>

リクエストヘッダーに追加[リクエストをサービスに送信]:

'soapAction' : '[actionNameIsHere]'

これは私のために働きます。

開発者向け。 node-soap [ https://github.com/vpulim/node-soap ]の使用-例:

var soap = require('soap');
var options = {
   ...your options...
   forceSoap12Headers: true
}
soap.createClient(
        wsdl, options,
            function(err, client) {
                if(err) {
                    return callBack(err, result);
                }
                client.addHttpHeader('soapAction', '[actionNameIsHere]');
                ...your code - request send...
            });
0
rt-dev-pl

/ tmpフォルダーのキャッシュwsdl- *ファイルを削除することで、私の問題は解決しました

https://www.drupal.org/node/1132926#comment-6283348 を参照してください

削除する許可に注意してください

私はubuntu osにいます

0
khaled_webdev

これは検証を無効にすることで解決できます

<proxy>
    <!-- . . . -->
    <parameter name="disableOperationValidation">true</parameter>
</proxy>
0

Wsdlファイルが見つからないようです。
javax.jws.WebServiceアノテーションでwsdlLocationパラメーターを追加することで解決しました

0
Frizz1977