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

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

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

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

1回答

809閲覧

入力パラメータの取得

yukkuri_55

総合スコア240

JSP

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2018/07/19 10:49

前提・実現したいこと

入力パラメータの取得
JSPで入力ボックスに入れた値をサーブレットに渡して表示したい。
入力ボックスは表示できている。
入力ボックスに値を入力して、クエリ送信ボタンを押すと 以下のエラーがでる。

発生している問題・エラーメッセージ

HTTPステータス 500 - Internal Server Error

Type Exception Report
メッセージ サーブレットクラス [EchoServlet] を初期化中にエラーが発生しました
説明 The server encountered an unexpected condition that prevented it from fulfilling the request.
例外
javax.servlet.ServletException: サーブレットクラス [EchoServlet] を初期化中にエラーが発生しました
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:844)
原因
java.lang.ClassNotFoundException: EchoServlet
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:844)
注意 原因のすべてのスタックトレースは、のログに記録されています

該当のソースコード

[echo.jsp]

JSP

1<%@page contentType="text/html; charset=Windows-31J"%> 2 3<HTML> 4<BODY> 5 6<H2>EchoServletの入力</H2> 7 8<FORM ACTION="EchoServlet"> 9 <INPUT TYPE="TEXT" NAME="message"> 10 <INPUT TYPE="SUBMIT"> 11</FORM> 12 13</BODY> 14</HTML>

[web.xml]

XML

1<web-app> 2 <servlet> 3 <servlet-name>EchoServlet</servlet-name> 4 <servlet-class>EchoServlet</servlet-class> 5 </servlet> 6 <servlet-mapping> 7 <servlet-name>EchoServlet</servlet-name> 8 <url-pattern>/EchoServlet</url-pattern> 9 </servlet-mapping> 10</web-app>

[EchoServlet.java]

java

1package input; 2 3import java.io.IOException; 4import java.io.PrintWriter; 5 6import javax.servlet.ServletException; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10 11public class EchoServlet extends HttpServlet 12{ 13 public void doGet( HttpServletRequest request, 14 HttpServletResponse response ) 15 throws ServletException, IOException 16 { 17 String msg = request.getParameter("message"); 18 19 response.setContentType("text/plain; charset=Windows-31J"); 20 PrintWriter out = response.getWriter(); 21 out.println("message=" + msg); 22 } 23} 24

ファイル階層

basic echo.jsp + input EchoServlet.java EchoServlet.class compaile.bat + WEB-INF web.xml

試したこと

EchoServlet.class のファイル位置をいろいろ変えて試した。

補足情報(FW/ツールのバージョンなど)

Apache Tomcat Version 8.5.32

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/07/19 11:05

j2eeの基礎を学ぼ
yukkuri_55

2018/07/20 10:52

ご指摘ありがとうございます。ご指摘の通りでして、javaの基礎を飛ばしてJSPに手をだしたところで、このありさまです。javaEE(?) javaSEから始めようと思います。
guest

回答1

0

<servlet-class> には、パッケージ名も含めなければなりません。

<servlet-class>input.EchoServlet</servlet-class>

投稿2018/07/19 11:12

A-pZ

総合スコア12011

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

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

yukkuri_55

2018/07/20 10:54

おっしゃるとおりにやっていただかせたのですが、やはり500が返ってきます。 上でご指摘されているとおり、Javaの基礎から始めたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問