2

レガシーアプリケーションの1つからコンテンツをプルしたいプロジェクトに取り組んでいますが、ユーザーに「www.somehostname.com/someproduct/...を待っています」と表示されないようにしたいと思います。

同じサーバーを指す別のドメインを簡単に追加できますが、それでもsomeproductURLのコンテキストルートの問題があります。レガシーアプリには既存のコンテキストルートを参照するハードコードされたビットが何百もあるため、単にコンテキストルートを変更することはできません。

私がやりたいのは、別のコンテキストルートにリクエストを送信して(Say /foo/bar.do)、実際にに送信できるようにすることです/someproduct/bar.do(ただし、リダイレクトがないため、ブラウザには引き続き表示されます/foo/bar.do)。

同様のことを行うURL書き換えオプションをいくつか見つけましたが、これまでのところ、それらはすべて、同じコンテキストルートとの間でのみリクエストをキャッチ/転送するように制限されているようです。

この種のことを扱うプロジェクトはありますか?weblogic 10.3を使用しています(レガシーアプリではweblogic 8です)。理想的には、これを新しいアプリの一部としてホストできますが、必要に応じて、古いアプリに何かを追加することもできます。

または、私たちが考えていなかった、よりうまく機能する完全に異なるソリューションはありますか?

更新:私たちはすでにmod_rewriteまたは同様のものでapaceを使用することを提案しましたが、管理/ホスティングはこのソリューションに親指を下ろしています。:/

アップデート2詳細情報:

ユーザーが古いURL/コンテキストルートを表示できる場所は、古いアプリから新しいアプリのiframeに読み込まれるページ/ワークフローと関係があります。

したがって、クライアントが見ることができる2つのアプリ間の通信については、特別なことは何もありません。これは、ブラウザーによって処理される単純な古いHTTPSです。

4

5 に答える 5

2

かなり単純なカスタムサーブレットを使用してこれを実行できるはずだと思います。

大まかに言うと、次のようになります。

  • サーブレットを/foo/*のようなマッピングにマップします
  • サーブレットの実装では、リクエストのpathInfoを取得し、それを使用してレガシーサイトにリクエストを送信します(HttpUrlConnectionまたは同等のApache Commonsを使用)。
  • 応答をクライアントにパイプします(ヘッダーを処理するためにいくつかの処理が必要になる場合があります)。
于 2009-07-15T19:49:26.640 に答える
2

WeblogicをApacheでフロントしてみませんか。

これは非常に標準的な設定であり、他にも多くの利点があります。ApacheでのURL書き換えは非常によくサポートされており、ドキュメントは優れています。

セットアップはかなりシンプルで、必要に応じて同じボックスでapacheを実行できます。

于 2009-07-15T19:05:38.037 に答える
1

Restletを使用すると、これを行うことができます。Redirectorオブジェクトを使用できます。たとえば、ここここを参照してください。

于 2009-07-15T21:32:28.803 に答える
0

代わりにJSPページを提供する場合は、タグを使用してリクエストサーバー側を実行できます。

そうすると、ユーザーはリソースが外部にあることすらわかりません。

http://java.sun.com/products/jsp/syntax/1.2/syntaxref1214.html

于 2009-07-15T19:49:38.933 に答える
0

クライアントが取り組んでいるAPIのもう少しコンテキストは、ここで機能する可能性のあるソリューションを提供するのに役立ちます。従来のJavaEEアプリとはまったく異なる完全に新しいAPIを提供しようとしていますか?API(サーブレット、EJB、RESTサービス)にサービスを提供しているアーティファクトは何ですか?

別のエンタープライズアプリケーションによってAPIが提供されている場合は、Pojoクラスを使用してレガシーアプリへのゲートウェイとして機能し、新しいサービスアプリとは別のコンテキストルートを介して到達できると思います。このソリューションは、すべてのレガシーAPIメソッドを知っていることを前提としており、それらを新しいAPIの呼び出しにマップできます。

どのメソッドが呼び出されるかを心配する必要がない一般的なソリューションの場合。プロキシアプローチが実際に機能するかどうか知りたいです。URLの書き換えによって、ユーザーの資格情報もレガシーシステムに正しく提供されますか?オリジンの発信者を使用する代わりに、レガシーコールを別のユーザーに切り替える必要がありますか?URLの書き換えでそれは可能ですか。それが安全な状況で機能するかどうかはわかりません。

たぶん、ここでもう少し情報を提供することができます。

于 2009-07-15T19:20:39.723 に答える