1

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 を使用して) 使用するものにリクエストを「リダイレクト」することです。おそらくサーブレットを使用して、これを行う方法がわかりませんか?アプリケーションサーバー上のいくつかの設定?

4

1 に答える 1

2

アプリケーションを ROOT としてデプロイした場合は、サーブレット マッピングを web.xml に配置するだけです。

<servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/FooService/*</url-pattern>
</servlet-mapping>
于 2012-11-29T15:25:10.043 に答える