1

ポート :80 で実行されている Web アプリケーションがあり、その Web アプリケーションの一部である Axis Web サービスがあります。そのため、サービスはポート :80 でも実行されています。

ただし、セキュリティ上の理由から、クライアントは Web サービスのポートを 8080 に変更して、Web サービスのリモート コンシューマにそのポートへのアクセスのみを許可できるようにするように依頼してきました。したがって、通常の Web アプリケーションにはアクセスできませんが、サービスにはアクセスできます。

これは、アプリをリファクタリングせずに別の Web アプリで Web サービスを取り出すことは可能ですか?

4

3 に答える 3

1

コメントで述べたように、Web アプリケーションは Oracle AS 10g でホストされ、その前に Oracle Web Cache サーバーが置かれています。Oracle Web Cache は Apache httpd に基づいているため、仮想ホストのサポートと URL の書き換えが可能です (ただし、これらの条件の下では存在しません)。

次の方法で問題を解決できました。

  • ポート 8080 (仮想ホスト) をリッスンするように Web キャッシュを構成する
  • http://host:8080/service/ *の形式のすべてのリクエストをhttp://host/service/ * に書き換え、他のすべての URL パターンを削除します。

それは魅力のように機能します。

Axis 自体については、別のポートでリッスンするように構成する方法が見つかりませんでした。Axis がこの機能を提供することを期待するのは不合理だったと思います。これは、サーブレット コンテナーでホストされるサーブレットにすぎず、コネクタ/トランスポート レイヤーを提供するのはコンテナーの仕事だからです。

とにかく...彼らの助けを提供してくれたすべての人に感謝します、私はそれを感謝します.

于 2009-02-02T22:31:56.747 に答える
0

簡単な答えはおそらく-はい、それは可能です。

Axis Webサービスは、ほとんどの場合、メインアプリケーションから十分に分離されているため、実行するWebサーバーを構成できない場合は、ポート8080でのみ実行される別のJavaWebサーバーインスタンスで簡単に実行できます。また、ポート8080で、そのポートでのみWebサービスを提供します。

于 2009-01-20T11:38:29.787 に答える
0

ポート 8080 コネクタを使用して別のサービスをセットアップできるはずです。

事実上、インスタンス内で 2 つの「ミニ」Tomcat を実行することになります。

基本的、

<Service> <!-- normal service -->
  <Connector port="80" />
</Service>
<Service> <!-- custom service -->
  <Connector port="8080" />
  <Engine>
     <Host />
  </Engine>
</Service>

このソリューションが正しく機能しない場合、デバッグの悪夢が発生する可能性があるように感じます。そのため、2 番目のサーバー (おそらく Jetty) を実行する方が簡単かもしれません。

于 2009-01-31T06:24:38.183 に答える