アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて投稿させていただきます。

現在、tomcat+Apache+cocoon でのシステムを製作しています。
機能としては、ログイン画面から認証が行えた後に、サーブレットを介して別画面に移動するというもので、そのメイン画面から各機能を実現するというものです。

ログイン画面での認証成功後、画面遷移が発生したときにURL部分に「null」が含まれてしまいます。

ログイン時には
<http://localhost/TEST/jsp/login.jsp>
を直接指定します。

ログイン後の移動先は
<http://localhost/TEST/jsp/main.jsp>
としたいところが
<http://localhost/null/jsp/main.jsp>
となります。

tomcatでの設定内容
server.xmlへの追加項目
------------------------------------
<Context path="TEST" docBase="TEST" debug="0"
reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_TEST_log." suffix=".txt"
timestamp="true"/>
</Context>
--------------------------

考えられるのはここらへんだと思われますが、その他にURLにnullが含まれてしまう原因はないでしょうか。

Apache のconf関連設定についても確認済みです。

同様の現象に遭われた方または解決方法を知っている方よろしくお願いいたします。

※ここに来るまでにHP上をいろいろ検索しましたが該当するような事例が無かったため投稿させていただきました。

A 回答 (3件)

すべての環境がわかりませんので、自分だったら、、という観点で書いてみます。



C:\TEST
├WEB-INF
│└classes
│  └TestServ.class
└jsp
   └login.jsp

まず、サーバサイド(localhostですが)は以上のようになっていたとします。
そしてクライアントから
http://localhost/TEST/jsp/login.jsp
でアクセスできるようにしたいとします。
そうするとC:\TESTフォルダが
URLではhttp://localhost/TEST/に対応しないといけませんよね。この対応があるので、
http://localhost/TEST/jsp と
C:\TEST\jspも同じところを指せるわけで、http://localhost/TEST/がルートになります。
その設定は
<Context path="TEST" docBase="C:\TEST" ...と行います。
(そうしないとlogin.jspも見えない気がするのですが。。(別途正常なContextが作られていて運よく動いているのかなぁ))
あとmain.jspへのフォワードは上の例で言うところのTestServみたいなサーブレットが行っているんですか?
    • good
    • 0
この回答へのお礼

毎回丁寧な回答ありがとうございます。

main.jspへは、ご指摘の通りサーブレットにて行っています。
DocBaseにパスを記載し、tomcatの再起動を行い動作確認をしたところ正常に動作するようになりました。

詳しい説明ありがとうございました。
当方に知識が無い事が最大の弱点であったため今回の件でいろいろ勉強させてもらいました。

丁寧な回答ありがとうございました。
以上

お礼日時:2005/10/27 20:25

サーブレットのコードの問題ではなさそうですね。


server.xmlで
docBase="TEST"
となっているのが気になるのですが、これは実際のパスを設定されているんですよね。
C:\TEST 見たいに。
http://localhost/TEST/jsp/login.jspが表示されるんでしたら、問題ないとは思うのですが、念のため。

次に疑ってかかるべきはweb.xmlで

<servlet-mapping>
<servlet-name>サーブレットの名前</servlet-name>
<url-pattern>/TEST</url-pattern>
</servlet-mapping>

になっているかどうかだと思います。
    • good
    • 0
この回答へのお礼

再度ご回答ありがとうございます。

ご指摘の箇所は、”TEST”です。
docBaseに関しては、パスを指定しなければならないのでしょうか。

パス以外での指定は不可能でしょうか?

またweb.xmlにかんしては、サーブレット名称を登録していません。それでも開発環境は動作するのです。

いろいろ回答ありがとうございます。

お礼日時:2005/10/27 16:21

こうした現象は初めてみました。


Tomcat等の設定の問題も考えられますが、
サーブレットから画面遷移されているようですので、
サーブレットからフォワードするコードがおかしいことはないでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

私もサーブレットからのフォワードコードを疑っていましたが、開発環境マシンでは何の問題も無く動いています。

新たにtomcat等をインストールを行ったマシンで動作がおかしくなっている状況です。
このマシンには既にtomcatがインストールされていたためおかしくなっているのでしょうか・・・。
バージョンに関しては同一のものです。

ありがとうございました。

お礼日時:2005/10/27 12:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!