質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

31692閲覧

java.lang.NullPointerExceptionが出ます。どうぞよろしくお願いします。

edoooooo

総合スコア476

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

1クリップ

投稿2015/11/14 03:45

編集2015/11/14 10:04

①エラー情報、②Main.java、③main.jsp)3つ全て更新しました。よろしくお願いします。
17:34 再更新しました。

os x yosemite version10.10.5 です

(①エラー情報、②Main.java、③main.jsp)

①エラー情報
HTTPステータス 500 - java.lang.NullPointerException

type 例外レポート

メッセージ java.lang.NullPointerException

説明 The server encountered an internal error that prevented it from fulfilling this request.

例外

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
servlet.Main.doGet(Main.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
原因

java.lang.NullPointerException
org.apache.jsp.WEB_002dINF.jsp.main_jsp._jspService(main_jsp.java:121)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
servlet.Main.doGet(Main.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
注意 原因のすべてのスタックトレースは、Apache Tomcat/7.0.65のログに記録されています

②Main..java

package servlet; //色のついた部分が変更箇所

import java.io.IOException;
import java.util.List;

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;
import javax.servlet.http.HttpSession;

import model.GetMutterListLogic;
import model.Mutter;
import model.PostMutterLogic;
import model.User;

@WebServlet("/Main")
public class Main extends HttpServlet{
private static final long serialVersionUID=1L;

protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ //つぶやきリストを取得して、リクエストスコープに保存 GetMutterListLogic getMutterListLogic=new GetMutterListLogic(); List<Mutter> mutterList = getMutterListLogic.execute(); request.setAttribute("mutterList", mutterList); //ログインしているか確認するため //セッションスコープからUser情報を取得 HttpSession session=request.getSession(); User loginUser=(User)session.getAttribute("loginUser"); if(loginUser ==null){//ログインしていない //リダイレクト response.sendRedirect("/taichi/"); }else{//ログイン済み //フォワード RequestDispatcher dispatcher =request.getRequestDispatcher("/WEB-INF/jsp/main.jsp"); dispatcher.forward(request, response); } } protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ //リクエストパラメータの取得 request.setCharacterEncoding("UTF-8"); String text =request.getParameter("text"); //入力値チェック if(text !=null && text.length()!=0){ //セッションスコープに保存されたUser情報を取得 HttpSession session=request.getSession(); User loginUser=(User)session.getAttribute("loginUser"); //つぶやきをつぶやきリストに追加 Mutter mutter =new Mutter(loginUser.getName(),text); PostMutterLogic postMutterLogic=new PostMutterLogic(); postMutterLogic.execute(mutter); //つぶやきリストを取得して、リクエストスコープに保存 GetMutterListLogic getMutterListLogic=new GetMutterListLogic(); List<Mutter>mutterList=getMutterListLogic.execute(); request.setAttribute("mutterList",mutterList); }else{ //エラーメッセージをれクエストスコープに保存 request.setAttribute("errorMsg", "つぶやきが入力されていません"); } //フォワード RequestDispatcher dispatcher=request.getRequestDispatcher("/WEB-INF/jsp/main.jsp"); dispatcher.forward(request, response); }

}

③このコードがエラーが出ているmain.jspです。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="model.User,model.Mutter,java.util.List" %>
<%
//セッションスコープに保存されたUser情報を取得
User loginUser=(User)session.getAttribute("loginUser");
//アプリケーションスコープに保存されたつぶやきリストを取得
List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList");
//リクエストスコープに保存されたエラーメッセージを取得
String errorMsg=(String) request.getAttribute("errorMsg");
%>

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>どこつぶ</title> </head> <body> <h1>どこつぶメイン</h1> <p> <%=loginUser.getName() %>さん、ログイン中 <a href="/taichi/Logout">ログアウト</a> </p> <p><a href="/taichi/Main">更新</a></p> <form action="/taichi/Main" method="post"> <input type="text" name="text"> <input type="submit" value="つぶやく"> </form> <% if(errorMsg !=null){ %> <p><%=errorMsg %></p> <% } else {%> <% for(Mutter mutter:mutterList){%> <p><%=mutter.getUserName() %>:<%=mutter.getText()%></p> <%} }%> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ちょっと想像になってしまいますが、

lang

1 //つぶやきリストを取得して、リクエストスコープに保存 2 GetMutterListLogic getMutterListLogic=new GetMutterListLogic(); 3 List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); 4 request.setAttribute("mutterList", mutterList);

この部分ですが、GetMutterListLogicnewしたあと、
つぶやきリストを取得するメソッドの呼び出しが必要では無いでしょうか。
List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); するのではなく、
getMutterListLogicのメソッドを呼び出して、結果をmutterListに入れることを想像しています。


(追記)

doGet(HttpServletRequest request, HttpServletResponse response)の

lang

1// つぶやきリストを取得して、リクエストスコープに保存 2GetMutterListLogic getMutterListLogic = new GetMutterListLogic(); 3List<Mutter> mutterList = (List<Mutter>) request.getAttribute("mutterList"); 4request.setAttribute("mutterList", mutterList);

lang

1// つぶやきリストを取得して、リクエストスコープに保存 2GetMutterListLogic getMutterListLogic = new GetMutterListLogic(); 3List<Mutter> mutterList = getMutterListLogic.execute(); 4request.setAttribute("mutterList", mutterList); 5にする必要があります。

main.jspは、

lang

1<% if(errorMsg !=null){ %> 2<p><%=errorMsg %></p> 3<% }%> 4<% for(Mutter mutter:mutterList){%> 5<p><%=mutter.getUserName() %>:<%=mutter.getText()%></p> 6<%} %>

の部分を

lang

1<% if(errorMsg !=null){ %> 2<p><%=errorMsg %></p> 3<% } else {%> 4<% for(Mutter mutter:mutterList){%> 5<p><%=mutter.getUserName() %>:<%=mutter.getText()%></p> 6<%}} %>

にする必要があります。

投稿2015/11/14 03:55

編集2015/11/14 08:26
eripong

総合スコア1546

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

edoooooo

2015/11/14 04:13

//つぶやきリストを取得して、リクエストスコープに保存 GetMutterListLogic getMutterListLogic=new GetMutterListLogic(); List<Mutter>mutterList=getMutterListLogic.execute(); request.setAttribute("mutterList",mutterList); としましたら、エラーがnullpoint に変わりました ありがとうございます。
eripong

2015/11/14 04:16

nullpointとは? 別の箇所でエラーが出たということですか? 元のエラーもNullPointerExceptionですよね?
edoooooo

2015/11/14 04:26

はい、そうだったのですが、場所が同じだと思うのですが、先ほどと違い細かい指定が、ないため、見当がつきませんでした。
eripong

2015/11/14 04:29

なるほど。 デバッガは使えますか? 修正した辺りをステップ実行して、 想定外にnullになっている変数がないか見てください。
edoooooo

2015/11/14 04:39

すみません、まだ本を写して実行するレベルなので、使ったことはありません。ステップ実行について、調べてみます。
eripong

2015/11/14 04:44

なるほど。 デバッガを使うのは必須技術と思うので、 この機会に覚えるといいかもしれません。 それから、main_jsp.java:121が例外発生箇所なので、 main_jsp.javaの121行目を見れば、何がnullか推測できると思います。 main_jsp.javaの場所は、Tomcatのworkディレクトリの下です。 workディレクトリは、Tomcatの実行の仕方により違うので、 分からなければ、どの様にTomcatを実行しているか教えて下さい。
edoooooo

2015/11/14 05:12 編集

調べたところ、tomcatのserverをダブルクリックして、引数、workスペース、と行くと、 ${workspace_loc:taichi} このように出ました。実行方法は、ファイル名を右クリックして、run as run on server です。よろしくお願いします。
eripong

2015/11/14 05:27 編集

eclipseからの起動ですか? そうであれば、 eclipseのワークスペース/.metadata/.plugins/org.eclipse.wst.server.core/tmp0 の下にあるかもしれません。 Windowsマシンしかないので、同じ環境は作れていません。 英語ですが、 http://www.mkyong.com/eclipse/where-is-eclipse-deploy-web-application-tomcat/ が参考になるかもしれません。
edoooooo

2015/11/14 05:39

ありがとうございます。 ネットのurlを見させていただいたところ、自分の場合は、 -Dcatalina.base="/Users/taichi/Documents/newworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0"   でした。 cd /Users/taichi/Documents/newworkspace/までは、あったのですが、その後からが、なく、 ls とすると、 RemoteSystemsTempFiles i sns Servers life start aaa new taichi taichi aaaa program test docoTsubu sample testWAR  このような、いままでに作ったsnsのコードの名前が出てきてしまいます。
eripong

2015/11/14 05:41

今回のアプリケーションのディレクトリにcdすると、 その下にworkディレクトリがありませんか?
edoooooo

2015/11/14 05:43

ls WebContent build src しかありませんでした。どこかでまちがえたのでしょうか?
eripong

2015/11/14 05:47

あ、すみません。 こちらのコメントが間違えていました。 cd /Users/taichi/Documents/newworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0 で移動できませんか?
edoooooo

2015/11/14 06:09

ありがとうございます。 tmp0には入れました。その中でlsしたところ、 ls conf temp work logs webapps wtpwebapps またこのようなものが、出てきました。tmp0には行った後にどのような作業をおこなえばいいのでしょうか?
eripong

2015/11/14 06:17

そこまでいければ、 work/Catalina/localhost/アプリケーション名/org/apache/jsp のディレクトリに、main_jsp.javaができていると思うので、 それの121行目を見てください。
edoooooo

2015/11/14 06:23

work/Catalina/localhost/taichi/org/apache/jsp/ と行くとその中には、 WEB_002dINF index_jsp.class index_jsp.java しかありませんでした。すみません
eripong

2015/11/14 06:29

ああ、WEB_002dINFの下かも知れません。 このディレクトリをたどってみていただけませんか?
eripong

2015/11/14 06:46

いえ、そうではなく、 ターミナルで mdfind main_jsp.java と打つとファイルの場所が分かるかも知れないと言うことです。
edoooooo

2015/11/14 06:50 編集

mdfind main_jsp.java /Users/taichi/Library/Containers/com.apple.Notes/Data/Library/CoreData/ExternalRecords/B1633A1F-395A-438B-B0AB-3D240A716FF9/IMAPNote/_records/0/p65.notesexternalrecord と出てきました。どうすればいいでしょうか?
eripong

2015/11/14 06:54

そうですか。 では、 cd /Users/taichi/Documents/newworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work/Catalina/localhost/taichi/org/apache/jsp/WEB_002dINF/jsp したら、そのディレクトリにmain_jsp.javaがありませんか?
edoooooo

2015/11/14 06:56

あるのですが、入ろうとすると、これ以上はないため、-bash: cd: main_jsp.java: Not a directory となります。
eripong

2015/11/14 06:59

main_jsp.javaはファイルなので、cdはできません。 cat main_jsp.java するとファイルの内容が確認できるはずです。
edoooooo

2015/11/14 07:18

一応4回確認したのですが、 for(Mutter mutter:mutterList){ でした。
eripong

2015/11/14 07:25

あ、すみません。 見落としていましたが、 List<Mutter>mutterList=(List<Mutter>)application.getAttribute("mutterList"); していますね。 これだとアプリケーションスコープからの取得になるので、 Servletで ServletContext sc = getServletContext(); sc.setAttribute("mutterList", mutterList); とするか、JSPで、 List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); とするかのどちらかにしなければなりません。
edoooooo

2015/11/14 07:32

List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); というコードが、servlet 内にあるので、これも、servlet内にします。 ありがとうございました。 違う箇所で同じ、nullpointexceptionが出たので、同じ手順でやっていきたいと思います。ありがとうございました。
eripong

2015/11/14 07:35

アプリケーションスコープに入れるということでよいでしょうか? 回答に結果を反映したいので、教えてもらえませんか?
edoooooo

2015/11/14 07:50 編集

すみませんmain.jspで、List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); とした他に、 Main.java(servlet)でも、2箇所、List<Mutter>mutterList=(List<Mutter>)request.getAttributに変更したのですが、 原因 java.lang.NullPointerException org.apache.jsp.WEB_002dINF.jsp.main_jsp._jspService(main_jsp.java:121) のエラーが変わりず出てしまいます。
eripong

2015/11/14 07:49

直したのはServletだけですか? そうであれば、 ServletContext sc = getServletContext(); した後、 sc.setAttribute("mutterList", mutterList); か sc.getAttribute("mutterList"); とするべきです。 解決しないようなら、修正後のソースを見せてください。
edoooooo

2015/11/14 08:01 編集

質問欄のコードを全部変更しました。どうぞよろしくお願いします。 main.jspとMain.java(servlet)のどちらも、変更しました。コードの List<Mutter>mutterList=getMutterListLogic.execute(); という文を全て、 List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); に変更しました。 本のMain.javaのコードのページの最後に、 リクエストスコープからリストを取得するように変更する必要があります。 List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); とかいてあったため、このようなコードにしました。servletで、これでは、だめなのでしょうか?
eripong

2015/11/14 08:15

全て変えてしまうと問題がありますね。 doGet(HttpServletRequest request, HttpServletResponse response) の、 // つぶやきリストを取得して、リクエストスコープに保存 GetMutterListLogic getMutterListLogic = new GetMutterListLogic(); List<Mutter> mutterList = (List<Mutter>) request.getAttribute("mutterList"); request.setAttribute("mutterList", mutterList); を // つぶやきリストを取得して、リクエストスコープに保存 GetMutterListLogic getMutterListLogic = new GetMutterListLogic(); List<Mutter> mutterList = getMutterListLogic.execute(); request.setAttribute("mutterList", mutterList); にする必要があります。
eripong

2015/11/14 08:18

また、JSPも以下のようにしないと、 Post時にtextがから文字列の場合にNullPointerExceptionが発生します。 <% if(errorMsg !=null){ %> <p><%=errorMsg %></p> <% } else {%> <% for(Mutter mutter:mutterList){%> <p><%=mutter.getUserName() %>:<%=mutter.getText()%></p> <%}} %>
eripong

2015/11/14 08:27

見にくいので回答に追記しましたが、コメント欄と同じ内容です。
edoooooo

2015/11/14 08:32

 Main.java(servlet)をGetMutterListLogic getMutterListLogic = new GetMutterListLogic();にして、  JSPを<% } else {%> にしたのですが、 jspないでは、List<Mutter> mutterList = (List<Mutter>) request.getAttribute("mutterList");で、  Main.java(servlet)でのもう一つのList<Mutter> mutterList = getMutterListLogic.execute(); の部分はそのままでいいのでしょうか? 実行してみたのですが、同じエラーが出てしまいました。
eripong

2015/11/14 08:36

分かりにくいですが、JSPは最後の行を <%} %> から <%}} %> にする必要があります。 }を追加しています。 また、 > jspないでは、List<Mutter> mutterList = (List<Mutter>) request.getAttribute("mutterList");で、 >  Main.java(servlet)でのもう一つのList<Mutter> mutterList = getMutterListLogic.execute(); の部分はそのままでいいのでしょうか? についてはそのままでよいです。
edoooooo

2015/11/14 08:42 編集

ありがとうございます。 すみません、修正後、tomcat再起動後、実行してみたのですが、同じエラーでした。 質問文の3つのコードは、最新のものと変更しました。 他のコードが 原因なのでしょうか? 申し訳ありません。
eripong

2015/11/14 08:48 編集

3つのコードですか? 質問文にあるのはMain.javaとmain.jspだけに見えます。
edoooooo

2015/11/14 08:52

間違えました。エラー文でした。すみません
eripong

2015/11/14 09:05

main_jsp.javaの121行目は変わっていませんか? JSPを書き換えたのであれば、変わるはずなのですが。
eripong

2015/11/14 09:19

servlet.Main.doGet(Main.java:41) とありますが、今の質問文のコードの41行目は空行ですので、 Tomcatへのアプリケーションのデプロイがうまく行っていないのでは?
edoooooo

2015/11/14 09:22

ターミナルで見た、main_jsp.javaの121行目は、変わっていませんでした。 for(Mutter mutter:mutterList){  です。
eripong

2015/11/14 09:24

それはおかしいですね。 関係ないかもしれませんが、ターミナルを閉じてから、 Tomcatを再起動して、ページにアクセスしたらどうなりますか?
eripong

2015/11/14 09:25

それと、Eclipseのコンソールには何かエラーメッセージは出ていませんか?
edoooooo

2015/11/14 09:46 編集

ながくてすみません コンソールの警告はあるのですが、エラーはないです。
eripong

2015/11/14 09:40

特にエラー出ていないですね。 eclipseのServersビューにはsynchronizedと出ていますか?
edoooooo

2015/11/14 09:42

started synchronized と出ています。
edoooooo

2015/11/14 09:49

Tomcatを再起動して、ページにアクセスしても、ターミナルの121行目は、変わってませんでした。 List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); の (List<Mutter>)request.getAttribute("mutterList"); の部分に このような、Type safety: Unchecked cast from Object to List<Mutter>警告が出ているのですが、関係ないでしょうか?
eripong

2015/11/14 09:50 編集

そうですか。 Serversビューでtaichiを右クリックして、削除してから、 改めてrun as⇒run on serverしたらどうでしょうか? 念のため、ターミナルは閉じておいてください。
eripong

2015/11/14 09:56

入れ違いました。 Type safety: Unchecked cast from Object to List<Mutter>警告 については、関係ないと思います。
edoooooo

2015/11/14 10:00

ありがとうございます。 Add and Remove で一度、けすということでしょうか?
eripong

2015/11/14 10:03

ちょっと手元に英語の環境がないので、 正確ではないですが、taichiというアプリケーションを Tomcatから一度消すということです。
edoooooo

2015/11/14 10:08

eclipseないのファイルからきえたら、元に戻せなくは、ならないのですか?
eripong

2015/11/14 10:14 編集

ServersビューからのDeleteは、Tomcatからの削除なので、 Eclipseプロジェクトのファイルは消えません。 ただ、taichitaichiさんに操作がうまく伝わっていなくて プロジェクトを右クリックして削除してしまうと問題なので、 不安であればどこかにプロジェクトのファイルをコピーしておいてください。
eripong

2015/11/14 10:16

重ねて言うと、Project ExplorerやPackage Explorerではなく、Serversのビューです。
edoooooo

2015/11/14 10:21

プロジェクトを消そうとしてました。ありがとうございます。 tomcat v7.0 Servlet at localhost [Stated,Synchronized] の所を右クリック、Deleteでしょうか? taichiというプロジェクト名が、入っていなくて、tomcatの設定が、きえそうで、怖いのですが…
eripong

2015/11/14 10:24

taichiというプロジェクトが入っていないですか? それはおかしいですね。
eripong

2015/11/14 10:25

tomcat v7.0 Servlet at localhost [Stated,Synchronized]の左に三角のマークがあって、 開けませんか?
edoooooo

2015/11/14 10:29 編集

ありました。ここでremoveですね すみませんダメでした。
eripong

2015/11/14 10:30

ダメ、というのはどういうことでしょうか? 同じエラーが出たのですか?
edoooooo

2015/11/14 10:35

メッセージ An exception occurred processing JSP page /WEB-INF/jsp/main.jsp at line 31  このようにメッセージは、変わったのですが、原因は、同じでした。
eripong

2015/11/14 10:39

今のエラーメッセージをすべて見たいので、質問の「①エラー情報 」を 更新してもらえませんか?
edoooooo

2015/11/14 10:40 編集

ふと感じたのですが、h2databaseを使っていて、うまく連携していなく、mutterListに値が入らないことなんて、ありませんでしょうか? 申し訳ありません
eripong

2015/11/14 10:41

それはあるかもしれません。 GetMutterListLogicのexecuteメソッドの内容も、見せていただけますか?
edoooooo

2015/11/14 10:43

分量が少ないためここに載せさせていただきます。 package model; import java.util.List; import dao.MutterDAO; public class GetMutterListLogic{ public List<Mutter>execute(){ MutterDAO dao=new MutterDAO(); List<Mutter>mutterList=dao.findAll(); return mutterList; } } よろしくお願いします。
eripong

2015/11/14 10:44

これだと、MutterDAOのfindAllメソッドも見ないと分かりませんので、 そちらもお願いします。
edoooooo

2015/11/14 10:46

よろしくお願いします。 package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import model.Mutter; public class MutterDAO{ private final String DRIVER_NAME="org.h2.Driver"; private final String JDBC_URL="jdbc:h2:file:C:/data/taichi"; private final String DB_USER="sa"; private final String DB_PASS=""; public List<Mutter>findAll(){ Connection conn=null; List<Mutter>mutterList=new ArrayList<Mutter>(); try{ Class.forName(DRIVER_NAME); conn=DriverManager.getConnection( JDBC_URL,DB_USER,DB_PASS); //SELECT文の準備 String sql="SELECT ID,NAME,TEXT FROM MUTTER ORDER BY ID DESC"; PreparedStatement pStmt=conn.prepareStatement(sql); //SELECT文を実行 ResultSet rs=pStmt.executeQuery(); //SELECT文の結果をArrayListに格納 while(rs.next()){ int id=rs.getInt("ID"); String userName=rs.getString("NAME"); String text=rs.getString("TEXT"); Mutter mutter=new Mutter(id,userName,text); mutterList.add(mutter); } }catch(SQLException e){ e.printStackTrace(); return null; }catch(ClassNotFoundException e){ e.printStackTrace(); return null; }finally{ //データベース切断 if(conn !=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); return null; } } } return mutterList; } public boolean create(Mutter mutter){ Connection conn=null; try{ //データベースへ接続 conn=DriverManager.getConnection(JDBC_URL,DB_USER,DB_PASS); //INSERT文の準備(idは自動連番なので指定しなくても良い) String sql="INSERT INTO MUTTER(NAME,)VALUES(?,?)"; PreparedStatement pStmt=conn.prepareStatement(sql); //INSERT文中の「?」に使用する値を設定しSQLを完成 pStmt.setString(1, mutter.getUserName()); pStmt.setString(2, mutter.getText()); //INSERT文を実行 int result=pStmt.executeUpdate(); if(result !=1){ return false; } }catch(SQLException e){ e.printStackTrace(); return false; }finally{ //データベース切断 if(conn !=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } return true; } }
eripong

2015/11/14 10:49

例外発生時にnullが返るようですが、Eclipseのコンソールに何か出ていませんか?
eripong

2015/11/14 10:53

それと、"jdbc:h2:file:C:/data/taichi"というのはWindowsのようなパスですが、 これを "jdbc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat" のようにしたらどうでしょうか?
edoooooo

2015/11/14 10:58

すみません、コンソールを見てみたら、すごく大事そうな文が出てきました。 org.h2.jdbc.JdbcSQLException: テーブル "MUTTER" が見つかりません Table "MUTTER" not found; SQL statement: SELECT ID,NAME,TEXT FROM MUTTER ORDER BY ID DESC [42102-190] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) at org.h2.message.DbException.get(DbException.java:179) at org.h2.message.DbException.get(DbException.java:155) at org.h2.command.Parser.readTableOrView(Parser.java:5293) at org.h2.command.Parser.readTableFilter(Parser.java:1234) at org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:1873) at org.h2.command.Parser.parseSelectSimple(Parser.java:1982) at org.h2.command.Parser.parseSelectSub(Parser.java:1867) at org.h2.command.Parser.parseSelectUnion(Parser.java:1688) at org.h2.command.Parser.parseSelect(Parser.java:1676) at org.h2.command.Parser.parsePrepared(Parser.java:432) at org.h2.command.Parser.parse(Parser.java:304) at org.h2.command.Parser.parse(Parser.java:276) at org.h2.command.Parser.prepareCommand(Parser.java:241) at org.h2.engine.Session.prepareLocal(Session.java:460) at org.h2.engine.Session.prepareCommand(Session.java:402) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1188) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:72) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:276) at dao.MutterDAO.findAll(MutterDAO.java:30) at model.GetMutterListLogic.execute(GetMutterListLogic.java:11) at servlet.Main.doGet(Main.java:27) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 11 14, 2015 7:28:42 午後 org.apache.catalina.core.ApplicationDispatcher invoke 重大: サーブレット jsp のServlet.service()が例外を投げました java.lang.NullPointerException at org.apache.jsp.WEB_002dINF.jsp.main_jsp._jspService(main_jsp.java:121) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) at servlet.Main.doGet(Main.java:41) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 11 14, 2015 7:28:42 午後 org.apache.catalina.core.StandardWrapperValve invoke 重大: Servlet.service() for servlet [servlet.Main] in context with path [/taichi] threw exception [An exception occurred processing JSP page /WEB-INF/jsp/main.jsp at line 31 28: <% if(errorMsg !=null){ %> 29: <p><%=errorMsg %></p> 30: <% } else {%> 31: <% for(Mutter mutter:mutterList){%> 32: <p><%=mutter.getUserName() %>:<%=mutter.getText()%></p> 33: <%} }%> 34: </body>
edoooooo

2015/11/14 10:58

Stacktrace:] with root cause java.lang.NullPointerException at org.apache.jsp.WEB_002dINF.jsp.main_jsp._jspService(main_jsp.java:121) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) at servlet.Main.doGet(Main.java:41) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
edoooooo

2015/11/14 10:59

後ほど、重要でない所は、削除します。どうぞよろしくお願いします。
eripong

2015/11/14 11:03

MUTTERテーブルがないと出ていますが、create tableしましたか?
edoooooo

2015/11/14 13:53 編集

はい create table mutter して、insert into mutter もしました。 http://ymotoba.blogspot.jp/2008/10/h2.html この記事の通りにして、URLの通りにhogeでもう一度create、 insert をして、先ほど教えていただいた、windows 版をmac 版に変更した所、エラーは、同じなのですが、consoleは、このように、かわりました。URLの通りにhogeでなく元々のtestにしても同じでした。
edoooooo

2015/11/14 13:46 編集

重要そうなことが書いていないため省略しました。
edoooooo

2015/11/14 13:41

11 14, 2015 10:33:07 午後 org.apache.catalina.startup.TldConfig execute 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 11 14, 2015 10:33:07 午後 org.apache.catalina.startup.TldConfig execute 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 11 14, 2015 10:33:07 午後 org.apache.catalina.startup.TldConfig execute 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 11 14, 2015 10:33:07 午後 org.apache.coyote.AbstractProtocol start 情報: Starting ProtocolHandler ["http-bio-8080"] 11 14, 2015 10:33:07 午後 org.apache.coyote.AbstractProtocol start 情報: Starting ProtocolHandler ["ajp-bio-8009"] 11 14, 2015 10:33:07 午後 org.apache.catalina.startup.Catalina start 情報: Server startup in 1151 ms org.h2.jdbc.JdbcSQLException: ファイル "/Users/taichi" を作成中にエラーが発生しました Error while creating file "/Users/taichi" [90062-190] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) at org.h2.message.DbException.get(DbException.java:179) at org.h2.message.DbException.get(DbException.java:155) at org.h2.store.fs.FilePathDisk.createDirectory(FilePathDisk.java:274) at org.h2.store.fs.FileUtils.createDirectory(FileUtils.java:42) at org.h2.store.fs.FileUtils.createDirectories(FileUtils.java:309) at org.h2.store.fs.FileUtils.createDirectories(FileUtils.java:308) at org.h2.store.fs.FileUtils.createDirectories(FileUtils.java:308) at org.h2.store.fs.FileUtils.createDirectories(FileUtils.java:308) at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:73) at org.h2.engine.Database.getPageStore(Database.java:2450) at org.h2.engine.Database.open(Database.java:672) at org.h2.engine.Database.openDatabase(Database.java:269) at org.h2.engine.Database.<init>(Database.java:263) at org.h2.engine.Engine.openSession(Engine.java:65) at org.h2.engine.Engine.openSession(Engine.java:175) at org.h2.engine.Engine.createSessionAndValidate(Engine.java:153) at org.h2.engine.Engine.createSession(Engine.java:136) at org.h2.engine.Engine.createSession(Engine.java:28) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:107) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:91) at org.h2.Driver.connect(Driver.java:72) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at dao.MutterDAO.findAll(MutterDAO.java:25) at model.GetMutterListLogic.execute(GetMutterListLogic.java:11) at servlet.Main.doGet(Main.java:27) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 11 14, 2015 10:33:18 午後 org.apache.catalina.core.ApplicationDispatcher invoke 重大: サーブレット jsp のServlet.service()が例外を投げました java.lang.NullPointerException at org.apache.jsp.WEB_002dINF.jsp.main_jsp._jspService(main_jsp.java:121) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) at servlet.Main.doGet(Main.java:41) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 11 14, 2015 10:33:18 午後 org.apache.catalina.core.StandardWrapperValve invoke 重大: Servlet.service() for servlet [servlet.Main] in context with path [/taichi] threw exception [An exception occurred processing JSP page /WEB-INF/jsp/main.jsp at line 31 28: <% if(errorMsg !=null){ %> 29: <p><%=errorMsg %></p> 30: <% } else {%> 31: <% for(Mutter mutter:mutterList){%> 32: <p><%=mutter.getUserName() %>:<%=mutter.getText()%></p> 33: <%} }%> 34: </body>
edoooooo

2015/11/14 13:43 編集

Stacktrace:] with root cause java.lang.NullPointerException at org.apache.jsp.WEB_002dINF.jsp.main_jsp._jspService(main_jsp.java:121) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) at servlet.Main.doGet(Main.java:41) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 長すぎて、申し訳ありません。どこが必要かの判断ができないため、よろしくお願いします。 接続の問題なのでしょうか?
eripong

2015/11/14 14:00

/Users/taichiを作ろうとして失敗していますね。 修正内容を具体的に知りたいのですが、 "jdbc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat" にしたということですか? /Users/taichi/Documents/newworkspace/taichi というディレクトリは存在すると思っていたのですが、ありますか? また、create tableする際も、 jdbc:h2:/Users/taichi/Documents/newworkspace/taichi/h2data.dat に接続すべきです。
edoooooo

2015/11/14 14:02

create tableする前に設定画面があるのですが、そのようにしていませんでした。 まず、/Users/taichi/Documents/newworkspace/taichiがあるかどうかを確認してみます。
edoooooo

2015/11/14 14:05

はじめに、/Users/taichi/Documents/newworkspace/taichi なのですが、ありました。ここにcd して、 ls  をすると、 WebContent build src  なものが出てきたのですが、ここまででいいのでしょうか?
eripong

2015/11/14 14:08

それはOKです。
edoooooo

2015/11/14 14:11

次に、デフォルトで、 jdbc:h2:~/test となっている、h2database の設定画面の JDBC URL:  という欄では、 jdbc:h2:/Users/taichi/Documents/newworkspace/taichi/h2data.dat:~/test とした所、ファイル "/Users/taichi" を作成中にエラーが発生しました Error while creating file "/Users/taichi" [90062-190] 90062/90062 (ヘルプ) のように出てしまいました。
eripong

2015/11/14 14:12

/Users/xxxxtaichi/Documents/newworkspace/ というようなディレクトリ(xxxxには苗字のようなものが入っていた)もありますか? taichitaichiさんが削除されたコメントに、そういうパスがあったのですが、 これは何でしょうか?
edoooooo

2015/11/14 14:15 編集

そうなんです。履歴が残るので、なのでフルネームはあれかなと思いまして、 ですが、実行するときは、しっかりと苗字も入れて実行しています。
eripong

2015/11/14 14:16

jdbc:h2:/Users/taichi/Documents/newworkspace/taichi/h2data.dat:~/test ではなく、 jdbc:h2:/Users/taichi/Documents/newworkspace/taichi/h2data.dat です。 /Users/taichi/Documents/newworkspace/taichi/の部分は、 ファイルのパスなので、 /Users/xxxxtaichi/Documents/newworkspace/taichi/ のようにしてください。
eripong

2015/11/14 14:17

> 実行するときは、しっかりと苗字も入れて実行しています。 これは、h2database の設定画面の JDBC URL:  という欄にも苗字を入れている、 ということですか?
edoooooo

2015/11/14 14:18

はい、入れています。
edoooooo

2015/11/14 14:22

すみません、eclipseのコードの方に入れ忘れてました。 h2の設定画面でエラーが出なくなりました。これから実行してみます。
edoooooo

2015/11/14 14:37

console にこのようなエラーは、あったのですが、 org.h2.jdbc.JdbcSQLException: テーブル "MUTTER" が見つかりません 重大: サーブレット jsp のServlet.service()が例外を投げました 先ほどのような、user/taichiのファイルの作成中にエラーが発生しました。は出なくなりました。 eclipseの500エラーは、同じでした。申し訳ありません。
eripong

2015/11/14 14:38

h2の設定画面でエラーが出なくなったあと、 create tableなどしましたか?
eripong

2015/11/14 14:39

それと、/Users/taichi/Documents/newworkspace/taichi/h2data.datという ディレクトリがH2によって作られているはずなのですが、ありますか?
edoooooo

2015/11/14 14:49

create table は、しました。 ls をしたところ、このようにありました。 WebContent h2data.dat.mv.db h2data.dat:~ build h2data.dat.trace.db src
eripong

2015/11/14 14:59

h2data.dat.mv.dbがあれば良いです。 Tomcatを落とした状態で、 h2の画面上で、MUTTERは参照できますか?
eripong

2015/11/14 15:01

MUTTERがなければ、もう一度create tableとinsertをして、 左上の切断ボタンを押して接続を切ってください。
edoooooo

2015/11/14 15:11

tomcatをつけていない状態でも、select * from mutter;をすると、しっかりとh2databaseないの、下の方に表が、できます。
eripong

2015/11/14 15:13

では、接続を切って、Tomcatを立ち上げて、もう一度ページにアクセスすると どうなりますか?
edoooooo

2015/11/14 15:36

h2databaseを切って、tomcatを立ち上げて、run as , run on server  をした所、 何も変わらず、同じエラーが console 共に出ました。
eripong

2015/11/14 15:42

そうですか。 h2databaseの切断は、左上にあるボタンで実施しましたか? URLがh2の画面とJavaのソースで一致しているかを もう一度確認してください。
eripong

2015/11/14 15:48

今日はもう寝ます。
edoooooo

2015/11/14 23:30

おそくまで、申し訳ありませんでした。
eripong

2015/11/14 23:56

いえ、大丈夫です。
edoooooo

2015/11/15 05:01

四角ボタンで停止していたのですが、左上の切断ボタンでもやってみたのですが、同じエラーが出てしまいました。 URLなのですが、http://192.168.100.102:8082/login.do?jsessionid=5128b1f7f84973983e47f98e4ccc42c8 とh2databaseでは、表示されていて、ソースないのtomcatないのURLは、http://localhost:8080/taichi/Main で全然違うのですが、どのように、確認すればいいのでしょうか? JDBC_URLではないですよね、すみません、よろしくお願いします。
eripong

2015/11/15 05:05

JDBC_URLと、h2databaseの設定画面のJDBC URLのことです。
edoooooo

2015/11/15 05:10

 これがh2database内の接続画面で、  jdbc:h2:/Users/taichi/Documents/newworkspace/taichi/h2data.dat:~/test  これがコードないです。 JDBC_URL="jdbc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat"; 同じでした。
eripong

2015/11/15 05:18

h2databaseの方に:~/testがついていますが、これを消して jdbc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat にしてください。
eripong

2015/11/15 05:23

file:はあってもなくても動くようです。
edoooooo

2015/11/15 09:38

おそくなり申し訳ありませんでした。 :~/test をけして、jd bc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat として、実行したのですが、 同じエラーとなってしまいました。  
eripong

2015/11/15 10:15

消した後、create tableとinsertもしましたか?
edoooooo

2015/11/15 12:20

はい、しました。
eripong

2015/11/15 12:45

そうですか。 同じエラーとは具体的にどういうエラーメッセージですか?
eripong

2015/11/15 12:52

エラーメッセージの後でよいのですが、 確認のためにTomcatもh2も落とした状態で、 h2data.dat.mv.dbとh2data.dat.trace.dbを削除して、 Tomcatを起動してアクセスすると、ファイルはできますか? また、同じように両方落としてファイルを削除した後、 今度はh2を立ち上げて接続、create tableとinsertして、 接続を切ってからh2を落としたら、ファイルができますか? そのあとTomcatを立ち上げてアクセスするとどうなりますか?
edoooooo

2015/11/15 13:29

org.h2.jdbc.JdbcSQLException: データベースが使用中です: null. 可能な解決策: 他の接続を全て閉じる; サーバモードを使う というエラーがconsoleにでていました。 eclipseないは、HTTPステータス 500 - An exception occurred processing JSP page /WEB-INF/jsp/main.jsp at line 31 type 例外レポート メッセージ An exception occurred processing JSP page /WEB-INF/jsp/main.jsp at line 31 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/main.jsp at line 31 28: <% if(errorMsg !=null){ %> 29: <p><%=errorMsg %></p> 30: <% } else {%> 31: <% for(Mutter mutter:mutterList){%> 32: <p><%=mutter.getUserName() %>:<%=mutter.getText()%></p> 33: <%} }%> 34: </body> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) servlet.Main.doGet(Main.java:41) javax.servlet.http.HttpServlet.service(HttpServlet.java:624) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 原因 java.lang.NullPointerException org.apache.jsp.WEB_002dINF.jsp.main_jsp._jspService(main_jsp.java:121) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) servlet.Main.doGet(Main.java:41) javax.servlet.http.HttpServlet.service(HttpServlet.java:624) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 注意 原因のすべてのスタックトレースは、Apache Tomcat/7.0.65のログに記録されています です。すみません、よろしくお願いします。
edoooooo

2015/11/15 13:40

h2data.dat.mv.db と、 h2data.dat.trace.db はどのようにして削除すればいいのでしょうか?すみませんよろしくお願いします。
eripong

2015/11/15 13:50 編集

データベースが使用中です、と出たのであれば、 恐らくほぼうまくいってます。 ファイル削除は不要なので、h2とTomcatを落とし、 Tomcatのみ立ち上げて、アクセスしてみてください。
eripong

2015/11/15 14:02 編集

なぜほぼうまくいっていると判断したかを書いておきます。 今回のエラーは、Tomcatがデータベースを使おうとしたら、 ほかのアプリケーションが使用中だったので使えないということで、 今の場合、他のアプリケーションとしてあり得るのは h2の管理アプリケーションくらいです。 そして、これまでの失敗は、h2の管理アプリケーションとTomcat上の アプリケーションが別のデータベースに繋がっていることが 原因と考えられるためです。
edoooooo

2015/11/15 14:27

そうだったのですか! 本当にありがとうございまうす。確認してみます。
edoooooo

2015/11/15 14:39

 h2databaseをバツで消して、接続もしていない状態にも関わらず、なぜか、無事、画面を開くことができました。ありがとうございました。  しかし、twitter のような、つぶやき入力欄に、コメントを入力すると、consoleに、org.h2.jdbc.JdbcSQLException: 列番号が一致しませんとエラーが出ます。これは、接続の問題では、ないのでしょうか?    また、h2databaseに接続すると、eclipseないは、同じエラーでconsoleでは、 org.h2.jdbc.JdbcSQLException: データベースが使用中です: null. 可能な解決策: 他の接続を全て閉じる; サーバモードを使う  のようなエラーが出ます。遅くに申し訳ありません。
eripong

2015/11/15 14:45

表示できて良かったです。 前半は完全に別問題なので、別質問にしてください。 後半だけ答えると、今は組み込みモードなので、 Tomcatとh2databaseの管理画面は同時には使えません。 使いたい方だけ立ち上げて使ってください。 エラーメッセージ通り、サーバモードにすれば使えますが。
edoooooo

2015/11/15 14:55

本当にありがとうございました。明日、新たなエラーに取り掛かってみます。 なんども申し訳ありませんでした。本当にお世話になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問