JBoss6.0を使用しています。
Webアプリケーションをデプロイしました:myApp.ear Webコンテキストの下: "/ test"。したがって、browser-urlで「http:// localhost:8080/test /」と入力すると、私のログインページ(myLogin.jsp)。
私のWARはEARファイル内に存在するため、Webモジュール内のcontext-root要素を使用して、application.xmlファイルでコンテキストルートを指定しました。
<module>
<web>
<web-uri>myWeb.war</web-uri>
<context-root>/test</context-root>
</web>
</module>
私の質問は、「ルートコンテキスト」からユーザーをWebアプリに自動ダイレクトする方法です。
つまり、ユーザーが「http:// localhost:8080 /」と入力すると、(JBossのデフォルトのROOT.warのインデックスではなく)Webアプリケーションのログインページが読み込まれると予想されます。 .htmlページ)。
{JBOSS}\server\default\deploy\ROOT.warから既存のindex.htmlを削除し、そこにlogin.jspを作成しました。 http:// localhost:8080 / と入力すると、「login.jsp」が呼び出されていることがわかります。しかし、ユーザーリクエストをWebアプリのログインページにリダイレクトできません。
そのlogin.jspで、<jsp:forward page="/test" />
を試してみましたが、「HTTPステータス404-/test」というエラーが表示されます。
<jsp:forward page="/test/myLogin.jsp" />
のように呼び出すと、同じ404エラーが発生します。
ルートコンテキストからWebアプリへの自動ダイレクトを実現する方法を誰かが提案できますか?
Index.htmlをデフォルトのデプロイフォルダーに保持し、リクエストをWebモジュールに転送する必要があります。
たとえば、index.htmlでのみ次の行を保持します
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/test/"/>
Senthil からの回答はうまく機能しますが、ユーザーはブラウザによって実行された実際のリダイレクトを確認できます(ページが点滅します)。リダイレクトは、JBossサーバーのリライト[ 1 、 2 ]機能を使用して実行することもできます。これは、30xコード(点滅なし)でHTTPリダイレクトをサポートします。
アプリに直接書き換えを追加して(web.xml
、jboss-web.xml
)、rewrite.properties
でリダイレクトルールを指定することができます-ここには示されていません。
または、元のアプリケーションに触れることなく、サーバー構成を独自に変更することもできます。アプリケーションはそのまま残されているので、このソリューションは便利だと思います。
ユースケース:これを [〜#〜] ejbca [〜#〜] デプロイメント(アプリではない)に使用し、コンテキストルートを/ejbca
に設定します。パッケージ化されたant
スクリプトによって提供されるデフォルトの展開プロセスを維持すると同時に、ある種のデフォルトとして/
から/ejbca
へのリダイレクトを追加します。ユーザーフレンドリー。ユーザーが変更したい場合は、アプリ全体を再デプロイすることなく、standalone.xml
を変更するだけで変更できます。
編集standalone.xml
:
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-Host" native="false">
<virtual-server name="default-Host" enable-welcome-root="true">
<alias name="localhost"/>
<rewrite pattern="^/$" substitution="/test" flags="L,QSA,R" />
</virtual-server>
</subsystem>