①エラー情報、②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>
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>
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
ちょっと想像になってしまいますが、
つぶやきリストを取得するメソッドの呼び出しが必要では無いでしょうか。
(追記)
doGet(HttpServletRequest request, HttpServletResponse response)の
main.jspは、
//つぶやきリストを取得して、リクエストスコープに保存
GetMutterListLogic getMutterListLogic=new GetMutterListLogic();
List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList");
request.setAttribute("mutterList", mutterList);
この部分ですが、GetMutterListLogic
をnew
したあと、
つぶやきリストを取得するメソッドの呼び出しが必要では無いでしょうか。
List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList");
するのではなく、
getMutterListLogic
のメソッドを呼び出して、結果をmutterListに入れることを想像しています。
(追記)
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);
にする必要があります。
main.jspは、
<% if(errorMsg !=null){ %>
<p><%=errorMsg %></p>
<% }%>
<% for(Mutter mutter:mutterList){%>
<p><%=mutter.getUserName() %>:<%=mutter.getText()%></p>
<%} %>
の部分を
<% if(errorMsg !=null){ %>
<p><%=errorMsg %></p>
<% } else {%>
<% for(Mutter mutter:mutterList){%>
<p><%=mutter.getUserName() %>:<%=mutter.getText()%></p>
<%}} %>
にする必要があります。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 89.96%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2015/11/14 13:13
GetMutterListLogic getMutterListLogic=new GetMutterListLogic();
List<Mutter>mutterList=getMutterListLogic.execute();
request.setAttribute("mutterList",mutterList);
としましたら、エラーがnullpoint に変わりました
ありがとうございます。
2015/11/14 13:16
別の箇所でエラーが出たということですか?
元のエラーもNullPointerExceptionですよね?
2015/11/14 13:26
2015/11/14 13:29
デバッガは使えますか?
修正した辺りをステップ実行して、
想定外にnullになっている変数がないか見てください。
2015/11/14 13:39
2015/11/14 13:44
デバッガを使うのは必須技術と思うので、
この機会に覚えるといいかもしれません。
それから、main_jsp.java:121が例外発生箇所なので、
main_jsp.javaの121行目を見れば、何がnullか推測できると思います。
main_jsp.javaの場所は、Tomcatのworkディレクトリの下です。
workディレクトリは、Tomcatの実行の仕方により違うので、
分からなければ、どの様にTomcatを実行しているか教えて下さい。
2015/11/14 13:59 編集
2015/11/14 14:25 編集
そうであれば、
eclipseのワークスペース/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
の下にあるかもしれません。
Windowsマシンしかないので、同じ環境は作れていません。
英語ですが、
http://www.mkyong.com/eclipse/where-is-eclipse-deploy-web-application-tomcat/
が参考になるかもしれません。
2015/11/14 14: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のコードの名前が出てきてしまいます。
2015/11/14 14:41
その下にworkディレクトリがありませんか?
2015/11/14 14:43
WebContent build src
しかありませんでした。どこかでまちがえたのでしょうか?
2015/11/14 14:47
こちらのコメントが間違えていました。
cd /Users/taichi/Documents/newworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
で移動できませんか?
2015/11/14 14:48 編集
cd /Users/taichi/Documents/newworkspace
したあと、
ls -a
すると、.metadataが見えるのではないかと思います。
参考URL:
https://sites.google.com/a/cis.twcu.ac.jp/qanda/qanda/mac-osx/file_first-chara-period
2015/11/14 15:09
ls
conf temp work
logs webapps wtpwebapps
またこのようなものが、出てきました。tmp0には行った後にどのような作業をおこなえばいいのでしょうか?
2015/11/14 15:17
work/Catalina/localhost/アプリケーション名/org/apache/jsp
のディレクトリに、main_jsp.javaができていると思うので、
それの121行目を見てください。
2015/11/14 15:23
WEB_002dINF index_jsp.class index_jsp.java しかありませんでした。すみません
2015/11/14 15:29
このディレクトリをたどってみていただけませんか?
2015/11/14 15:36
http://qiita.com/KENJU/items/862d59d29bb033eb0a8c
にある様に、
mdfind main_jsp.java
することで見つかるかもしれません。
2015/11/14 15:42
2015/11/14 15:46
ターミナルで
mdfind main_jsp.java
と打つとファイルの場所が分かるかも知れないと言うことです。
2015/11/14 15:49 編集
/Users/taichi/Library/Containers/com.apple.Notes/Data/Library/CoreData/ExternalRecords/B1633A1F-395A-438B-B0AB-3D240A716FF9/IMAPNote/_records/0/p65.notesexternalrecord
と出てきました。どうすればいいでしょうか?
2015/11/14 15: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がありませんか?
2015/11/14 15:56
2015/11/14 15:59
cat main_jsp.java
するとファイルの内容が確認できるはずです。
2015/11/14 16:18
for(Mutter mutter:mutterList){
でした。
2015/11/14 16: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");
とするかのどちらかにしなければなりません。
2015/11/14 16:32
ありがとうございました。
違う箇所で同じ、nullpointexceptionが出たので、同じ手順でやっていきたいと思います。ありがとうございました。
2015/11/14 16:35
回答に結果を反映したいので、教えてもらえませんか?
2015/11/14 16:40 編集
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)
のエラーが変わりず出てしまいます。
2015/11/14 16:49
そうであれば、
ServletContext sc = getServletContext();
した後、
sc.setAttribute("mutterList", mutterList);
か
sc.getAttribute("mutterList");
とするべきです。
解決しないようなら、修正後のソースを見せてください。
2015/11/14 16:56 編集
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で、これでは、だめなのでしょうか?
2015/11/14 17: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);
にする必要があります。
2015/11/14 17:18
Post時にtextがから文字列の場合にNullPointerExceptionが発生します。
<% if(errorMsg !=null){ %>
<p><%=errorMsg %></p>
<% } else {%>
<% for(Mutter mutter:mutterList){%>
<p><%=mutter.getUserName() %>:<%=mutter.getText()%></p>
<%}} %>
2015/11/14 17:27
2015/11/14 17:32
JSPを<% } else {%> にしたのですが、
jspないでは、List<Mutter> mutterList = (List<Mutter>) request.getAttribute("mutterList");で、
Main.java(servlet)でのもう一つのList<Mutter> mutterList = getMutterListLogic.execute(); の部分はそのままでいいのでしょうか? 実行してみたのですが、同じエラーが出てしまいました。
2015/11/14 17:36
<%} %>
から
<%}} %>
にする必要があります。
}を追加しています。
また、
> jspないでは、List<Mutter> mutterList = (List<Mutter>) request.getAttribute("mutterList");で、
> Main.java(servlet)でのもう一つのList<Mutter> mutterList = getMutterListLogic.execute(); の部分はそのままでいいのでしょうか?
についてはそのままでよいです。
2015/11/14 17:41 編集
すみません、修正後、tomcat再起動後、実行してみたのですが、同じエラーでした。
質問文の3つのコードは、最新のものと変更しました。 他のコードが 原因なのでしょうか? 申し訳ありません。
2015/11/14 17:47 編集
質問文にあるのはMain.javaとmain.jspだけに見えます。
2015/11/14 17:52
2015/11/14 18:05
JSPを書き換えたのであれば、変わるはずなのですが。
2015/11/14 18:19
とありますが、今の質問文のコードの41行目は空行ですので、
Tomcatへのアプリケーションのデプロイがうまく行っていないのでは?
2015/11/14 18:22
for(Mutter mutter:mutterList){ です。
2015/11/14 18:24
関係ないかもしれませんが、ターミナルを閉じてから、
Tomcatを再起動して、ページにアクセスしたらどうなりますか?
2015/11/14 18:25
2015/11/14 18:33 編集
2015/11/14 18:40
eclipseのServersビューにはsynchronizedと出ていますか?
2015/11/14 18:42
2015/11/14 18:49
List<Mutter>mutterList=(List<Mutter>)request.getAttribute("mutterList"); の
(List<Mutter>)request.getAttribute("mutterList"); の部分に
このような、Type safety: Unchecked cast from Object to List<Mutter>警告が出ているのですが、関係ないでしょうか?
2015/11/14 18:49 編集
Serversビューでtaichiを右クリックして、削除してから、
改めてrun as⇒run on serverしたらどうでしょうか?
念のため、ターミナルは閉じておいてください。
2015/11/14 18:56
Type safety: Unchecked cast from Object to List<Mutter>警告
については、関係ないと思います。
2015/11/14 19:00
Add and Remove で一度、けすということでしょうか?
2015/11/14 19:03
正確ではないですが、taichiというアプリケーションを
Tomcatから一度消すということです。
2015/11/14 19:05 編集
http://static.springsource.com/projects/dm-server/1.0.x/getting-started/html/ch04s06.html
これの画像の作業は、今やってみたのですが、ダメでした。
あと、今までに開いたものを全部一度決して、eclipseとトムキャットを再起動してもダメでした。すみません、よろしくお願いします。
2015/11/14 19:05
2015/11/14 19:08
2015/11/14 19:13 編集
Eclipseプロジェクトのファイルは消えません。
ただ、taichitaichiさんに操作がうまく伝わっていなくて
プロジェクトを右クリックして削除してしまうと問題なので、
不安であればどこかにプロジェクトのファイルをコピーしておいてください。
2015/11/14 19:16
2015/11/14 19:21
tomcat v7.0 Servlet at localhost [Stated,Synchronized] の所を右クリック、Deleteでしょうか? taichiというプロジェクト名が、入っていなくて、tomcatの設定が、きえそうで、怖いのですが…
2015/11/14 19:24
それはおかしいですね。
2015/11/14 19:25
開けませんか?
2015/11/14 19:28 編集
すみませんダメでした。
2015/11/14 19:30
同じエラーが出たのですか?
2015/11/14 19:35
このようにメッセージは、変わったのですが、原因は、同じでした。
2015/11/14 19:39
更新してもらえませんか?
2015/11/14 19:40 編集
2015/11/14 19:41
GetMutterListLogicのexecuteメソッドの内容も、見せていただけますか?
2015/11/14 19: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;
}
}
よろしくお願いします。
2015/11/14 19:44
そちらもお願いします。
2015/11/14 19: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;
}
}
2015/11/14 19:49
2015/11/14 19:53
これを
"jdbc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat"
のようにしたらどうでしょうか?
2015/11/14 19: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>
2015/11/14 19: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)
2015/11/14 19:59
2015/11/14 20:03
2015/11/14 22:38 編集
http://ymotoba.blogspot.jp/2008/10/h2.html この記事の通りにして、URLの通りにhogeでもう一度create、 insert をして、先ほど教えていただいた、windows 版をmac 版に変更した所、エラーは、同じなのですが、consoleは、このように、かわりました。URLの通りにhogeでなく元々のtestにしても同じでした。
2015/11/14 22:39 編集
2015/11/14 22: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>
2015/11/14 22:43 編集
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)
長すぎて、申し訳ありません。どこが必要かの判断ができないため、よろしくお願いします。
接続の問題なのでしょうか?
2015/11/14 23:00
修正内容を具体的に知りたいのですが、
"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
に接続すべきです。
2015/11/14 23:02
まず、/Users/taichi/Documents/newworkspace/taichiがあるかどうかを確認してみます。
2015/11/14 23:05
ls をすると、
WebContent build src なものが出てきたのですが、ここまででいいのでしょうか?
2015/11/14 23:08
2015/11/14 23:11
Error while creating file "/Users/taichi" [90062-190] 90062/90062 (ヘルプ) のように出てしまいました。
2015/11/14 23:12
というようなディレクトリ(xxxxには苗字のようなものが入っていた)もありますか?
taichitaichiさんが削除されたコメントに、そういうパスがあったのですが、
これは何でしょうか?
2015/11/14 23:14 編集
ですが、実行するときは、しっかりと苗字も入れて実行しています。
2015/11/14 23:16
ではなく、
jdbc:h2:/Users/taichi/Documents/newworkspace/taichi/h2data.dat
です。
/Users/taichi/Documents/newworkspace/taichi/の部分は、
ファイルのパスなので、
/Users/xxxxtaichi/Documents/newworkspace/taichi/
のようにしてください。
2015/11/14 23:17
これは、h2database の設定画面の JDBC URL: という欄にも苗字を入れている、
ということですか?
2015/11/14 23:18
2015/11/14 23:22
h2の設定画面でエラーが出なくなりました。これから実行してみます。
2015/11/14 23:37
org.h2.jdbc.JdbcSQLException: テーブル "MUTTER" が見つかりません
重大: サーブレット jsp のServlet.service()が例外を投げました
先ほどのような、user/taichiのファイルの作成中にエラーが発生しました。は出なくなりました。 eclipseの500エラーは、同じでした。申し訳ありません。
2015/11/14 23:38
create tableなどしましたか?
2015/11/14 23:39
ディレクトリがH2によって作られているはずなのですが、ありますか?
2015/11/14 23:49
ls をしたところ、このようにありました。
WebContent h2data.dat.mv.db h2data.dat:~
build h2data.dat.trace.db src
2015/11/14 23:59
Tomcatを落とした状態で、
h2の画面上で、MUTTERは参照できますか?
2015/11/15 00:01
左上の切断ボタンを押して接続を切ってください。
2015/11/15 00:11
2015/11/15 00:13
どうなりますか?
2015/11/15 00:36
何も変わらず、同じエラーが console 共に出ました。
2015/11/15 00:42
h2databaseの切断は、左上にあるボタンで実施しましたか?
URLがh2の画面とJavaのソースで一致しているかを
もう一度確認してください。
2015/11/15 00:48
2015/11/15 08:30
2015/11/15 08:56
2015/11/15 14:01
URLなのですが、http://192.168.100.102:8082/login.do?jsessionid=5128b1f7f84973983e47f98e4ccc42c8 とh2databaseでは、表示されていて、ソースないのtomcatないのURLは、http://localhost:8080/taichi/Main で全然違うのですが、どのように、確認すればいいのでしょうか?
JDBC_URLではないですよね、すみません、よろしくお願いします。
2015/11/15 14:05
2015/11/15 14:10
jdbc:h2:/Users/taichi/Documents/newworkspace/taichi/h2data.dat:~/test
これがコードないです。
JDBC_URL="jdbc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat";
同じでした。
2015/11/15 14:18
jdbc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat
にしてください。
2015/11/15 14:23
2015/11/15 18:38
:~/test をけして、jd
bc:h2:file:/Users/taichi/Documents/newworkspace/taichi/h2data.dat
として、実行したのですが、 同じエラーとなってしまいました。
2015/11/15 19:15
2015/11/15 21:20
2015/11/15 21:45
同じエラーとは具体的にどういうエラーメッセージですか?
2015/11/15 21:52
確認のためにTomcatもh2も落とした状態で、
h2data.dat.mv.dbとh2data.dat.trace.dbを削除して、
Tomcatを起動してアクセスすると、ファイルはできますか?
また、同じように両方落としてファイルを削除した後、
今度はh2を立ち上げて接続、create tableとinsertして、
接続を切ってからh2を落としたら、ファイルができますか?
そのあとTomcatを立ち上げてアクセスするとどうなりますか?
2015/11/15 22:29
というエラーが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のログに記録されています
です。すみません、よろしくお願いします。
2015/11/15 22:40
2015/11/15 22:49 編集
恐らくほぼうまくいってます。
ファイル削除は不要なので、h2とTomcatを落とし、
Tomcatのみ立ち上げて、アクセスしてみてください。
2015/11/15 23:01 編集
今回のエラーは、Tomcatがデータベースを使おうとしたら、
ほかのアプリケーションが使用中だったので使えないということで、
今の場合、他のアプリケーションとしてあり得るのは
h2の管理アプリケーションくらいです。
そして、これまでの失敗は、h2の管理アプリケーションとTomcat上の
アプリケーションが別のデータベースに繋がっていることが
原因と考えられるためです。
2015/11/15 23:27
2015/11/15 23:39
しかし、twitter のような、つぶやき入力欄に、コメントを入力すると、consoleに、org.h2.jdbc.JdbcSQLException: 列番号が一致しませんとエラーが出ます。これは、接続の問題では、ないのでしょうか?
また、h2databaseに接続すると、eclipseないは、同じエラーでconsoleでは、
org.h2.jdbc.JdbcSQLException: データベースが使用中です: null. 可能な解決策: 他の接続を全て閉じる; サーバモードを使う のようなエラーが出ます。遅くに申し訳ありません。
2015/11/15 23:45
前半は完全に別問題なので、別質問にしてください。
後半だけ答えると、今は組み込みモードなので、
Tomcatとh2databaseの管理画面は同時には使えません。
使いたい方だけ立ち上げて使ってください。
エラーメッセージ通り、サーバモードにすれば使えますが。
2015/11/15 23:55
なんども申し訳ありませんでした。本当にお世話になりました。