- PR -

コンパイルエラー⇒@IT > Java Solution > 基礎から学ぶサーブレット/JSP 第9回

1
投稿者投稿内容
kaokun
会議室デビュー日: 2004/06/04
投稿数: 9
投稿日時: 2004-06-07 13:21
java初心者です、@IT > Java Solution > 基礎から学ぶサーブレット/JSP 第9回
のfilelist.jspを練習してコンパイルしていますが、コンパイルエラーがでました。

変更箇所⇒File objFld=new File(application.getRealPath("."));
⇒File objFld=new File(application.getRealPath"C:\\TEST\\MYTEST\\public_html\\"));

ご教授お願いいたします。

ソース
-------------------------------------------------------------------------------
<%@ page contentType="text/html; charset=Shift_JIS"
import="java.io.*,java.util.*" %>
<table border="1">
<tr>
<th>ファイル名</th><th>サイズ(キロバイト)</th><th>最終更新日</th>
</tr>
<%
File objFld=new File(application.getRealPath("C:\\TEST\\MYTEST\\public_html\\"));
File[] aryFls=objFld.listFiles();
for(int i=0;i<aryFls.length;i++){
%>
<tr>
<td><%=aryFls[i].getName()%></td>
<td align="right">
<%
if(aryFls[i].isDirectory()){
out.print("<br />");
}else{
out.print(Math.ceil(aryFls[i].length()/1024+1) + "KB");
}
%>
</td>
<td><%=(new Date(aryFls[i].lastModified())).toString() %></td>
</tr>
<% } %>
</table>
-------------------------------------------------------------------------------
以下はコンパイルエラー
-------------------------------------------------------------------------------
java.lang.NullPointerException
at java.io.File.<init>(File.java:180)
at _fileList._jspService(fileList.jsp:
[/fileList.jsp]
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:721)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
at java.lang.Thread.run(Thread.java:534)
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-06-07 13:48
引用:

kaokunさんの書き込み (2004-06-07 13:21) より:
java初心者です、@IT > Java Solution > 基礎から学ぶサーブレット/JSP 第9回
のfilelist.jspを練習してコンパイルしていますが、コンパイルエラーがでました。


まず、これはコンパイルエラーではなく実行時エラーですね。
発生しているのがFileクラスの初期化部分なので、おそらく

引用:

File objFld=new File(application.getRealPath("C:\TEST\MYTEST\public_html\"));


ここでFileクラスのコンストラクタへの引数、つまりgetRealPathの戻り値がNULLになっている
と思います。getRealPathは仮想パスに対するファイルシステム上の実際のパスを返すものなので、
引数に実際のパスを指定するのはおかしいです。パス指定が正しいとすれば、以下のようにすれば
いいのではないですか?

File objFld=new File("C:\TEST\MYTEST\public_html\");
kaokun
会議室デビュー日: 2004/06/04
投稿数: 9
投稿日時: 2004-06-07 14:04
ありがとうございます、
File objFld=new File(application.getRealPath("C:\TEST\MYTEST\public_html\"));
より実行エラーを解決致しました、ありがとうございます。

もう一つ聞きたいですが、getRealPathを使う仮想パースはどこで設定されていますでしょうか?参考資料でもありましたら、教えていただけば幸いですが、よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)