0

:)ついにホスティングを購入し、Tomcatプロジェクトをデプロイしようとしています。サーバーは mochahost.com で、JSP と Tomcat のサポートが有効になっています。私のプロジェクトはローカル マシンでは問題なく動作しますが、Web サーバーにデプロイすると次のように表示されます。

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception in JSP: /List/index.jsp:38

35: <br>    
36: <%
37: String file = application.getRealPath("/") + "default_list.txt";
38: FileReader filereader = new FileReader(file);
39: BufferedReader br = new BufferedReader(filereader);
40: String eachLine = br.readLine();
41: while (eachLine != null) {

何が間違っている可能性がありますか?私の推測では、ファイルにアクセスできないのですが、どうすれば修正できますか? ありがとう!

更新: 問題はサーバーのパスによって引き起こされ、Server.MapPath メソッドを使用して解決されました。

4

2 に答える 2

1

そうです、これは Web アプリでファイル パスを使用しようとする際の問題です。どこにデプロイされるかわかりません。

あなたが試すことができるいくつかのことがあります:

  1. ログに実際のパスを書き込んで、それを確認できるようにします。他に何をすべきかをどのように知ることができますか?
  2. サーブレット コンテキストCLASSPATHを使用してファイルを読み取ります。getResourceAsStream()
  3. 「default_list」は、これが参照データであることを示しています。定数なので、JSON または XML として埋め込んでみてください。
  4. JSP でスクリプトレット コードを使用しないでください。サーブレットでそのデータを JSP に渡します。
  5. JSTLを学びます。あなたはあなたがしたことをうれしく思います。
  6. 参照データをデータベースに入れて、そこから読み取ります。
于 2012-03-08T10:15:10.170 に答える
0

プログラムは 38 行目で中断します。これは、問題が getRealPath メソッドから取得しているパスにあることを意味します。このメソッドで取得しているパスを分析し、それが理にかなっている場合 (つまり、取得しようとしている txt ファイルがそのパスにある場合) を分析することをお勧めします。

于 2012-03-08T10:14:38.870 に答える