AJAXからJava Webサービス(JAX-WS)を呼び出す方法は?
-
06-07-2019 - |
質問
データをmysql DBに挿入して取得するJava Webサービス(JAX-WS)を開発しています。このWebサービスには、fetchFromDBとinsertIntoDBの2つのメソッドがあります。 netbeans IDEを使用してサービスをテストすると、サービスは正常に実行されているようです。
Address: /CalculatorWSService
WSDL: /CalculatorWSService?wsdl
しかし、URL http:// localhost:8080 / CalculatorAppを提供して、AJAXのxmlHttpRequestオブジェクトを使用してアクセスしようとすると/ CalculatorWSService 。アクセスできません。私はC#Webサービスを開発しましたが、URLで簡単にアクセスできましたが、Java Webサービスはそれに従っていないようです。
私の質問は
AJAXのWebサービス操作にアクセスするために使用するURL (URLで「?wsdl」を使用する必要がありますか? JAX-WS Webサービスに簡単にアクセスするためのjavascript ajaxライブラリはありますか? Apache Axis WebサービスはJAX-WSよりも良い選択ですか? 助けてください、ありがとう、ジェイ
解決
私はあなたと同じ問題を抱えていました。JavascriptからJax-ws Webサービスを呼び出すことができませんでしたが、これを行う方法を見つけました。
使用するUrlは同じ(EndPointAddress)にすることができます" http:// localhost:8080 / CalculatorApp / CalculatorWSService "
ただし、javascriptからXMLHttpRequestオブジェクトを作成する場合は、次のことを行う必要があります。
* POSTメソッドを使用してURLを開きます。GETを試しましたが、うまくいきませんでした。
* SOAPActionリクエストヘッダーを、空の""であっても、wsdlのヘッダーに設定します。
*送信するリクエストボディには十分に注意してください。石鹸の封筒は正しくなければなりません。
これがお役に立てば幸いです!
バイ。
ポールマンジャレス。
他のヒント
クライアントの観点からは、AxisとJAX-WSの間に大きな違いがあるとは思っていませんでした。クライアントに必要なものはすべてWSDLにある必要があります。
時々発生することの1つは、WebServiceの開発時に使用されるURLが開発ホストとポート(および場合によってはContextRoot)を参照することです。理想的には、新しい" binding"で新しいWSDLを作成できます。情報。
最初のステップは、呼び出すWebサービスにブラウザーを直接向けることです。私の環境では、素敵な「こんにちは、これはWebサービスです」を返します。一種のメッセージ。 401 not foundエラーが発生した場合は、Webサービスがどのようにデプロイされたかを正確に調べる必要があります。別のポートまたはコンテキストルートが指定されましたか?