異なるwarのJSPにフォワードすることは可能か?

このQ&Aのポイント
  • 異なるwarのJSPにフォワードすることは可能でしょうか?フォワード元は「http://ドメイン/smt/test.jsp」で、フォワード先は「http://ドメイン/pc/test.jsp」です。現在の動作では、「/smt/pc/test.jsp」に遷移しようとして404エラーとなっています。
  • デプロイ構成として、all.ear内にはpc.warとsmt.warがあります。pc.war内のJSPからsmt.war内のJSPにフォワードすることを試みていますが、正常に動作しません。
  • リダイレクトでは正常に動作するため、フォワードを使用したいと考えています。アプリケーションサーバはWAS7(もしくは8)を予定しており、動作確認はtomcat7で行っています。
回答を見る
  • ベストアンサー

異なるwarのJSPにフォワードすることは可能か?

お世話になっております。 以下のデプロイ構成の場合に、smt.war内のJSPから、pc.war内のJSPにフォワードすることは可能でしょうか? 【デプロイ構成】 all.ear pc.war smt.war やりたいことのイメージとしては、フォワード元・先が以下のURLの時、「<jsp:forward page="/pc/test.jsp"></jsp:forward>」の記述で問題なくフォワードさせたいのですが、動作確認したところ「/smt/pc/test.jsp」に遷移しようとして404となってしまいます。 フォワード元:http://ドメイン/smt/test.jsp フォワード先:http://ドメイン/pc/test.jsp 【補足】 ・リダイレクトだと問題なく「/pc/test.jsp」に遷移できましたが、諸事情で可能であればフォワードを使用したい ・アプリケーションサーバは、WAS7(もしくは8)の予定(動作確認はtomcat7) 以上、よろしくお願いいたします。

  • Java
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • co_maam
  • ベストアンサー率65% (13/20)
回答No.1

結論から言うと、難しいと思います。 フォワードは、ServletContextにおけるServlet間の移動を実現しています。 アプリケーションが違うということは、ServletContextが違うということなので、 他アプリケーションへのフォワードは実現できないはずです。 アプリケーションの統合が難しいようでしたら、 フォワードを行うことと同様の動作を、 別のアプローチで検討してみてはどうでしょうか。 フォワードを利用したい諸事情がわかりませんので 具体的な提案は出来ませんが、ブラウザに表示させるURLの問題であれば、 URLリライティングを行ったり、 apacheを経由させるなどの方法が考えられると思います。

関連するQ&A

  • サーブレットからJSPへフォワード 画像が・・・

    サーブレットからJSPへフォワード 画像が・・・ javaの勉強をしながらサーブレットやJSPを使ったページを作ってるのですが、サーブレットで処理を行った後にJSPへ sc.getRequestDispatcher("/index.jsp").forward(req, res); で転送したら画像が表示されません。 JSPで記述したページを直接開いたりresponse.Redirect(URL)で遷移した場合は画像もちゃんと表示されます。画像だけではなくスタイルシート等も読み込んでいないようなのです・・・orz どうしたらいいのでしょうか? 【ファイル構成】 [プロジェクトフォルダ]  JSPファイル(.jsp)  [image]   画像ファイル  [style]   スタイルシート  [WEB-INF]   [classes]    サーブレットファイル(.class)

    • ベストアンサー
    • Java
  • GoogleAppEngineでJSPが使えない

    「Google App Engine」のeclipseのプラグインについてなのですが、JSPファイルを作るとなぜか、ファイルのアイコン上に「×」印がでてしまいます。 JSPファイルを生成しているのは/war直下です。 このJSP自体はテスト環境だと動くのですが、デプロイはできません。 どうしたら、消せるでしょうか?

    • ベストアンサー
    • Java
  • servletからjspへの遷移時に文字化け

    質問します。 用件:servletからjspに遷移する際に文字化けが発生します。 環境: Eclipse3.7 java6 ApacheTomcat7.0 フレームワークはなし 内容: フォワードでTest.jspに遷移します。 RequestDispatcher requestdispatcher = request.getRequestDispatcher("/Test.jsp"); requestdispatcher.forward(request, response); Test.jspに遷移すると、Test.jspの「<body>テスト</body>」がブラウザ表示時に文字化けします。 (英数字は化けません。) servletを使用せず、Test.jspに直接アクセスすると文字化けが起きません。 servletで、Test.jspで適当なhiddenを作成し、servletでgetParameterをSystem.out.printしても 文字化けなどはおきません。 また、RequestDispatcherでは文字化けが起こりますが、 response.sendRedirect("/Test.jsp"); だと文字化けがおきません。 現状、sendRedirectとsessionを使用して値の受け渡しを行っておりますが、 RequestDispatcherを使用したいので困っております。 また文字コードは javaファイルそのものはSJIS jspは<%@ page language="java" contentType="text/html; charset=SJIS" %> となっております。 わかりにくい文章で申し訳ありませんが、ご回答の程よろしくお願いします。

    • ベストアンサー
    • Java
  • JSP内での不思議な挙動

    現在、webアプリを作成(Springフレームワークを使用)していてJSPにて不思議な 挙動を起こしたので質問させてください。 要点としては<img src="/Test/">(Testはrequest.getContextPathにて取得) というタグがJSP内にあった場合、何か特別な挙動を起こすのかということです。 以下に詳細を記述します。 JSP内に以下のようなimgタグが生成されることを期待してJSPを作成しました。 <img src="/Test/img/xxx.jpg"> (img/xxx.jpgの部分は変数で記述。Testの部分もrequest.getContextPathにて取得) しかし、バグで変数から値が受け取れず <img src="/Test/">という形式のimgタグが生成されてしまいました。 問題はここからでこの状態で画面上にあるボタン(次画面遷移)を押下してPOSTされた場合、 ログイン画面に遷移してしまいました。(インターセプター内でログイン情報が取得できなければ ログイン画面に遷移するように記述されているため) ところが直書きにて<img src="/Test/aaaa">などとTestの後ろに適当な値のタグを 作成し、ボタン(次画面遷移)を押下すると正常に次画面に遷移しました。 imgタグの画像のURLがTest(Webアプリ名)だけだと何か特別な動作をしてしまうものなので しょうか。

    • ベストアンサー
    • Java
  • ServletからJSPに遷移させた後もServletに制御を戻したいんですが

    Java初心者です。宜しくお願いします。 現在、ServletからJSPに対してIncludeまたはForward した後にServlet側にて処理を継続させる方法が ないか調べています。 Forwardは×かなというところ まではわかったのですがIncludeで行った場合 Servlet → JSPに遷移させた後に呼び出し元の Servletに制御を戻す事は可能でしょうか。 また、一般的な方法がありましたらご教授お願いします。 宜しくお願いします。

    • ベストアンサー
    • Java
  • RequestDispatcher.forwardメソッドで遷移する際のURL

    お世話になります。 JSP/サーブレットを使用してwebアプリケーションを作成しています。 タイトルの通りRequestDispatcher.forwardメソッドで遷移する際のURL についてうまくいかず、原因がわからない為質問させて頂きます。 ご教授宜しくお願い致します。 Aproject/jsp/login.jsp Aproject/jsp/top.jsp Aproject/WEB-INF/src/servlet/Login.java という3つのファイルを使用しています。 login.jspにて<form action="../Login" method="post">で Login.javaサーブレットにIDとパスワードを渡し、 サーブレットで認証を行ったあと RequestDispatcher.forwardメソッドにて以下のように 遷移するようになっています。 RequestDispatcher rd = request.getRequestDispatcher("./jsp/top.jsp"); rd.forward(request, response); 遷移はうまくいくのですが、top.jspが表示される時のURLが http://localhost:8080/Aproject/jsp/top.jspとなるはずが、 http://localhost:8080/Aproject/Login となってしまいます。 web.xmlの記述は <servlet> <servlet-name>Login</servlet-name> <servlet-class>servlet.Login</servlet-class> </servlet> <servlet-mapping> <servlet-name>Login</servlet-name> <url-pattern>/Login</url-pattern> </servlet-mapping> としています。 forwardメソッドではなく、sendRedirectメソッドを使用した場合 http://localhost:8080/Aproject/jsp/top.jsp とうまくいきます。 どのような原因が考えられますでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • Java
  • 【servlet】フォワードを使った画面遷移

    java,サーブレット初学者です。表題の通り、フォワード を使って画面遷移を試みています。 以下のコードを記述しリンクをクリックすると確かに画面遷移はできるのですが、 フォワードが出来ているならURLの最後が【/Test1】になるのではないかと考えました。 ですが実際は【/NewFile2】となっているため、フォワードが出来ていないのかと思います。 どの様にしたら前者のような結果になるでしょうか。 ご教授頂きたいです。 サーブレット↓ package sample; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Test1") public class Test1 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher br = request.getRequestDispatcher("html/NewFile2.html"); br.forward(request, response); } } 遷移前の画面↓ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>テスト</title> </head> <body> <h2>sample</h2> <p>テストです</p> <a href ="/servlet_dayo/html/NewFile2.html">画面遷移する</a> </body> </html> 遷移先↓ <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>テスト</title> </head> <body> <p>遷移先</p> </body> </html> サーバー:Tomcat8.5 os:macos を使用しています。どうぞよろしくお願いします。 ※OKWAVEより補足:「Webシステム開発」についての質問です。

    • ベストアンサー
    • Java
  • .forwardでの転送がうまくいかない。

    はじめまして。 .forwardをサーバにアップする方法で メールの転送をしたいのですがうまくいきません。 原因として考えられることがあれば、教えていただきたいのです。 ちなみに、転送元も、転送先(biglobe)も独自ドメインを 取得しています。 携帯電話へは、転送できるのですが…。

  • JSPのページが表示されません

    初めまして。 JSPについて質問があります。 現在OSはRedHatLinux7.2で、JDK、Tomcat、Pathの環境変数の設定を行ない、Tomcatを起動させ、Servletの動作("Hello World!"という文字列を表示するのみ)を確認した段階です。Servletの動作の際にTomcatをインストールした直下のconfディレクトリ内のserver.xmlに以下のスクリプトを追加しました。 <Context path="/test"    docBase="webapps/test" crossContext="false" debug="0" reloadable="true" > </Context> Servletに関しては上記の設定とTomcatとPCの再起動で動作を確認できたのですが、JSPの方は[Internal Error: 500 Servlet Error]が出て表示されませんでした。 ちなみにJSPファイルの位置はtestディレクトリ直下のjspディレクトリ内にあります。 ・hello.jspのスクリプト <%@page contentType="text/html;charset=euc-jp" %> <html> <head> <title>JSPTEST</title> </head> <body> <% out.println("HELLO WORLD!"); %> </body> </html> ・JSPファイルを表示するアドレス http://localhost:8080/test/jsp/hello.jsp ここで質問なのですが、JSPに関しても何か設定が必要なのでしょうか? もし何か分かることがありましたら、ご教授御願い致します。

    • ベストアンサー
    • Java
  • weblogicで開発するにはwarファイルの作成が必須ですか?

    今weblogic8.1でwebアプリケーションを開発していますか、warで作成しアプリケーションモジュールを追加したときはjspの表示が旨く出来ますか、warで作成しなくてアプリケーションモジュールなしでソースをドメインのapplications直下に入れてる場合はhttp404エラーが表示されます。ちなみに、ソースのみでの構成は: applications/ index.jsp WEB-INF/ |- web.xml -- weblogic.xml アクセスじのパスは: http://localhost:7001/myWeb/index.jsp -- エラー http://localhost:7001/index.jsp -- エラー となってます。 8.1でwarを作成しなくでjspを表示させるにはどうすれば良いのでしょか?

    • ベストアンサー
    • Java

専門家に質問してみよう