6

jax-ws Web サービスを websphere 8.5 で動作させようとしましたが、成功しませんでした。Java Bean と war のパッケージ化、ステートレス ejb と jar のパッケージ化を試しましたが、うまくいきません。

@webservice アノテーションを使用して動作させようとしています。

私は余分なアーティファクトを生成していません。展開中に websphere を把握させます。展開中にエラーはありません。デプロイ後、ブラウザで wsdl を実行して、Web サービスが正常にインストールされているかどうかを確認しようとしましたが、何も得られません。

展開中に何か間違ったことをしているのか、それとも何か他のことをしているのかわかりません。さらに情報が必要な場合はお知らせください。

よろしく、

4

4 に答える 4

3

実際、websphere 8.5 は Java EE 6 に準拠しています。つまり、コンテナーは Web アプリケーションのクラスパスをスキャンして、@webservice アノテーションが付けられたクラスを見つけ、それらを実行中の Web サービスとしてデプロイする必要があります。

ただし、使用しているサーブレットの仕様 (web.xml ファイルで指定) によっては、スキャンは行われません。仕様のバージョン 2.5 以降では自動的に行われるはずです。

古い W​​eb アプリケーションの場合、Websphere の解決策は、関連する war の MANIFEST.MF に特別な属性を配置することです。キーは UseWSFEP61ScanPolicy で、値は true です。詳しくはこちらをご覧ください。

サーブレット 3.0 仕様には、スキャンを制御するパラメーターもあります (通常、アプリケーションのコールド スタート初期化を高速化するために使用されます)。web.xml 3.0 デプロイメント記述子のルート タグに metadata-complete="true" を配置すると、スキャンが実行されなくなります (false はスキャンを有効にします)。

于 2013-07-03T17:17:57.730 に答える
1

私は多かれ少なかれあなたと同じ問題に遭遇していましたが、WAS 8.0.

web.xml が Servlet 3.0 仕様用に作成されていることを確認してください。サーブレット 2.4 に web.xml を使用していましたが、バージョンを 3.0 に更新すると問題が解決しました。

お役に立てれば...

于 2013-05-21T13:01:26.170 に答える