1

mysql DB にデータを挿入して取得するための Java Web サービス (JAX-WS) を開発しています。この Web サービスには、fetchFromDB と insertIntoDB の 2 つのメソッドがあります。netbeans IDE を使用してサービスをテストすると、サービスは正常に実行されているようです。

Address: /CalculatorWSService
WSDL:    /CalculatorWSService?wsdl

しかし、URL http://localhost:8080/CalculatorApp/CalculatorWSServiceを提供して、AJAX の xmlHttpRequest オブジェクトを使用してアクセスしようとすると。アクセスできません。私は C# Web サービスを開発しました。URL を使用して簡単にアクセスできましたが、Java Web サービスはそれに従っていないようです。

私の質問は

AJAX で Web サービス操作にアクセスするために使用する URL は? (URL で '?wsdl' を使用する必要がありますか? JAX-WS Web サービスに簡単にアクセスするための JavaScript ajax ライブラリはありますか? Apache Axis Web サービスは JAX-WS よりも優れた選択肢ですか? 助けてください、ありがとう、ジェイ

4

2 に答える 2

1

私はあなたと同じ問題を抱えていて、JavascriptからJax-ws Webサービスを呼び出すことができませんでしたが、これを行う方法を見つけました。

使用するURLは同じ(EndPointAddress)にすることができます" http:// localhost:8080 / CalculatorApp / CalculatorWSService "

しかし、javascriptからXMLHttpRequestオブジェクトを作成するときは、次のことを行う必要があります。

* POSTメソッドを使用してURLを開き、GETで試しましたが、機能しませんでした。
* SOAPActionリクエストヘッダーは、空の ""であっても、wsdl内のヘッダーに設定します。
*送信するリクエストの本文には十分注意してください。石鹸の封筒は正しい必要があります。

これがお役に立てば幸いです。

さよなら。
ポール・マンジャレス。

于 2010-05-04T14:28:08.313 に答える
1

クライアントの観点からは、Axis と JAX-WS の間に大きな違いがあるとは思っていませんでした。クライアントが必要とするものはすべて WSDL にある必要があります。

時々起こることの 1 つは、WebService の開発時に使用される URL が開発ホストとポート (および場合によっては ContextRoot) を参照することです。特定のサーバーにデプロイされると、それらのいずれかが変更される可能性があります。理想的には、新しい「バインディング」情報を使用して新しい WSDL を作成できます。

最初のステップは、呼び出したい Web サービスをブラウザーで直接指定することです。私の環境では、「こんにちは、これは Web サービスです」というような素敵なメッセージを返します。401 not found エラーが発生した場合は、Web サービスがどのようにデプロイされたかを正確に調べる必要があります。別のポートまたはコンテキスト ルートが指定されましたか?

于 2009-07-31T20:36:16.657 に答える