Axis2 1.4 と glassfish 2.1.1 を使用して WS を開発しました。これは、次のようなエンドポイント URL を使用して適切に実行されています。
`http://server:port/appname/services/FooService`
しかし、次のようなエンドポイントを介して機能させる必要があります
`http://server:port/FooService`
別のエンドポイントを使用するように WS クライアントを変更することはできないためです。
「appname」部分を取り除くのは簡単で、appname をアプリケーション サーバーの下のルートに設定します (アプリケーションの application.xml 構成ファイルを変更します)。http://server:port/services/FooService
これにより、正常に動作するが「サービス」の部分がまだ残っているようなエンドポイントにつながります。
「サービス」の部分を取り除くために、私は試しました:
axis2.xml 設定ファイルの「servicePath」プロパティを変更しました。このプロパティを空白に設定すると、null、""、または "/" は機能しません。最初の 2 つのケースでは、アプリケーションのデプロイ中に「servicePath を null または空にすることはできません」という例外がスローされます。
AxisServlet を URL パターン「/」にマップするために web.xml ファイルに新しいエントリを追加しましたが、やはり機能しません。
だから、私の質問は次のとおりです: servicePath パラメータを取り除く方法はありますか?
そうする方法がないと仮定すると、別のアイデアは、使用しようとしているエンドポイント URL から axis2 が (servicePath を使用して) 使用するものにリクエストを「リダイレクト」することです。おそらくサーブレットを使用して、これを行う方法がわかりませんか?アプリケーションサーバー上のいくつかの設定?