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

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

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

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

Java

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

servlet

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

Q&A

解決済

2回答

2707閲覧

Webアプリケーション作成について

rinRin__

総合スコア9

JSP

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

Java

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

servlet

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

0グッド

0クリップ

投稿2017/05/24 01:43

お世話になります。

現在、jspとサーブレットを用いてWebアプリケーション作成を行っています。
流れとしてjspページで値を入力し、DBに保存、DBに保存された値を一覧として別jspページに表示されるという流れで作成しております。

現在、詰まってしまっているところが初期表示させたいjspページがでてこず、DBにセットする値がnullのため、500で落ちてしまう状況です。

ご教示をお願いいたします。

###前提・実現したいこと
jspページを表示させたい

###発生している問題・エラーメッセージ
StandardWrapperValve[XXXXXX]: Servlet.service() for servlet XXXXServlet threw exception
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at datebase.SQLExcecution.setInsert(XXXXXDao.java:21)
at main.EstimateServlet.doPost(XXXXXServlet.java:45)
at main.EstimateServlet.doGet(XXXXXServlet.java:21)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)

###該当のソースコード
-jsp

<form method="post" action="<%= request.getContextPath()%>/XXXX" > <div class="contents"> <div class=""> <a href="">ああああ</a> <hr /> </div>…

-servlet
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException{
this.doPost(req, res);

}

public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {

req.setCharacterEncoding("UTF-8");

String a = req.getParameter("a");
String[] b = {a};

HttpSession session = req.getSession();
session.setAttribute("b", b);
YYYY c = new YYYY();
if(c.ZZZZ(b) == true ){
RequestDispatcher dispatcher = req.getRequestDispatcher("./WEB-INF/jsp/WWWW.jsp");
dispatcher.forward(req, res);
-web.xml
<welcome-file-list>
<welcome-file>/WEB-INF/jsp/AAAA.jsp</welcome-file>
</welcome-file-list>

<servlet> <servlet-name>XXXXServlet</servlet-name> <servlet-class>cc.XXXXServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>XXXXServlet</servlet-name> <url-pattern>/XXXX</url-pattern> </servlet-mapping>

###試したこと
この前のエラーとして405の表示がでていたため、サーブレットにdoGetの記載を追加

###補足情報(言語/FW/ツール等のバージョンなど)
・Eclipce4.5.0
・Glassfish4.1
・postgresql9.4

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

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

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

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

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

guest

回答2

0

ベストアンサー

スタックトレースから見る限り

java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Integer.java:542) at java.lang.Integer.parseInt(Integer.java:615) at datebase.SQLExcecution.setInsert(XXXXXDao.java:21)

と出ていますので、XXXXXDao.javaの21行目でparseIntできずにエラーが出ているようです。
残念ながらXXXXXDaoのソースコードがありませんので、これ以上正確な回答は出せません。

投稿2017/05/24 02:31

A-pZ

総合スコア12011

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

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

rinRin__

2017/05/24 04:13

エラーの出ているXXXXDaoの一部分のソースです。 String sql = "insert into XX(a,b,c,d,e,f) values(?,?,?,?,?,?)"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, list[0]); pstmt.setString(2, list[1]); pstmt.setInt(3, Integer.parseInt(list[2])); pstmt.setString(4, list[3]); pstmt.setString(5,list[4]); pstmt.setString(6, list[5]); int rs = pstmt.executeUpdate(); サーブレットで受け取った値をリストに入れ、XXXXDaoでその値をDBに入れようとしているところです。cの型だけ数値を想定しているためparseIntをしています。 そこでNumberFormatException:nullが起きているのは初期表示させたいjspから値が受け取れていないためか、と考え当初の質問をさせていただきました。
A-pZ

2017/05/24 04:34

正しくDaoクラスへ値が渡されているかも、Servletのソースからでは判断できませんでした。ServletからDaoクラスへのつながりが書かれておりませんでしたので、このパラメータの受け渡しができているかをデバッグモードを使って確認するなどをすると、原因がわかるのではないかと思います。
rinRin__

2017/05/24 05:24

たびたびご迷惑をおかけして申し訳ありません。 Daoクラスのつながりは当初ソースを記載した、 YYYY c = new YYYY(); if(c.ZZZZ(b) == true ){ のYYYYでDaoクラスを呼び、insert処理を行うZZZZがtrue(ZZZZはrsが1件以上ならtrue)なら~という動きをサーブレットにつけています。 パラメータの受け渡しは初期表示させたいjspに値が入っていないことが原因かと考えていましたが止まってしまった、という現状です。
rinRin__

2017/05/24 07:35

自己解決いたしました。ありがとうございました。
guest

0

本当に記載されているソースコードで例外が起きてますか?
見てる感じ、NumberFormatExceptionが起きそうなとこが見当たりません。

parseIntをしているところもないし、そもそもデータベースに関わる部分がありません。
気になるのは、YYYYクラスのコンストラクタか、ZZZZメソッドぐらいしかありません。

投稿2017/05/24 02:16

編集2017/05/24 02:17
root_jp

総合スコア4666

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問