いつもお世話になっております。
テスト動作確認として、JSPを用いてブラウザにフォーム画面を表示させ、SQLseverにある情報を遷移先のページに表示させたいのですが、そもそもフォーム画面に404エラーが表示されてしまいます。
元々はこちらの記事を参考にさせていただいてプロジェクトのひな形を作成しましたので、変更すべき個所が変更できていないのだと思います。
コンソールを確認すると、以下のコンソール画面にあるように「重大」の項目3点のエラーメッセージが表示されたのですが、未熟ゆえに原因が特定できずにおります。
発生している問題・エラーメッセージ
情報: Serverのバージョン名: Apache Tomcat/8.5.64 [月 6 21 20:00:33 JST 2021] 情報: Server ビルド: Mar 4 2021 23:14:16 UTC [月 6 21 20:00:33 JST 2021] 情報: サーバーのバージョン番号: 8.5.64.0 [月 6 21 20:00:33 JST 2021] 情報: OS 名: Windows 10 [月 6 21 20:00:33 JST 2021] 情報: OS バージョン: 10.0 [月 6 21 20:00:33 JST 2021] 情報: アーキテクチャ: amd64 [月 6 21 20:00:33 JST 2021] 情報: Java Home: C:\mori\pleiades\java\8\jre [月 6 21 20:00:33 JST 2021] 情報: JVM バージョン: 1.8.0_202-b08 [月 6 21 20:00:33 JST 2021] 情報: JVM ベンダ: Oracle Corporation [月 6 21 20:00:33 JST 2021] 情報: CATALINA_BASE: C:\mori\pleiades\ws\estimate_system.metadata.plugins\org.eclipse.wst.server.core\tmp0 [月 6 21 20:00:33 JST 2021] 情報: CATALINA_HOME: C:\mori\pleiades\tomcat\8 [月 6 21 20:00:33 JST 2021] 情報: コマンドライン引数: -Dcatalina.base=C:\mori\pleiades\ws\estimate_system.metadata.plugins\org.eclipse.wst.server.core\tmp0 [月 6 21 20:00:33 JST 2021] 情報: コマンドライン引数: -Dcatalina.home=C:\mori\pleiades\tomcat\8 [月 6 21 20:00:33 JST 2021] 情報: コマンドライン引数: -Dwtp.deploy=C:\mori\pleiades\ws\estimate_system.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps [月 6 21 20:00:33 JST 2021] 情報: コマンドライン引数: -Djava.endorsed.dirs=C:\mori\pleiades\tomcat\8\endorsed [月 6 21 20:00:33 JST 2021] 情報: コマンドライン引数: -Dfile.encoding=UTF-8 [月 6 21 20:00:33 JST 2021] 情報: 商用環境に最適な性能を発揮する APR ベースの Tomcat ネイティブライブラリが java.library.path [C:\mori\pleiades\java\8\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/mori/pleiades/eclipse//jre/bin/server;C:/mori/pleiades/eclipse//jre/bin;C:\Program Files\Microsoft MPI\Bin\;C:\mori\apache-maven-3.8.1\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\Git\cmd;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Hitachi\DABroker\lib;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users\WATANO\work\hurry\OGAKI\LifeEvent\command;C:\HashiCorp\Vagrant\bin;C:\Program Files\heroku\bin;c:\Program Files (x86)\Intel;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Azure Data Studio\bin;C:\Users\morih\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\Azure Data Studio\bin;C:\mori\pleiades\eclipse;;.] に存在しません。 [月 6 21 20:00:33 JST 2021] 情報: プロトコルハンドラ ["http-nio-8080"] を初期化します。 [月 6 21 20:00:33 JST 2021] 情報: Using a shared selector for servlet write/read [月 6 21 20:00:34 JST 2021] 情報: Initialization processed in 1235 ms [月 6 21 20:00:34 JST 2021] 情報: サービス [Catalina] を起動します [月 6 21 20:00:34 JST 2021] 情報: Starting Servlet Engine: Apache Tomcat/8.5.64 [月 6 21 20:00:34 JST 2021] 情報: 少なくとも1つのJARが、まだTLDを含んでいないTLDについてスキャンされました。 スキャンしたが、そこにTLDが見つからなかったJARの完全なリストについては、このロガーのデバッグログを有効にしてください。 スキャン中に不要なJARをスキップすると、起動時間とJSPのコンパイル時間が改善されます。 [月 6 21 20:00:35 JST 2021] 重大: フィルタ [estimate] の起動中の例外です [月 6 21 20:00:35 JST 2021] 重大: 1つまたは複数のフィルタを開始できませんでした。 完全な詳細は適切なコンテナログファイルにあります。 [月 6 21 20:00:35 JST 2021] 重大: 以前のエラーのためにコンテキストの起動が失敗しました [/EstimateSystem] [月 6 21 20:00:35 JST 2021] 情報: プロトコルハンドラー ["http-nio-8080"] を開始しました。 [月 6 21 20:00:35 JST 2021] 情報: Server startup in 1141 ms [月 6 21 20:00:35 JST 2021]
該当のソースコード
java
1package estimatePackage; 2 3import java.sql.Connection; 4import java.sql.Driver; 5import java.sql.ResultSet; 6import java.sql.Statement; 7import java.util.Properties; 8 9import org.apache.logging.log4j.LogManager; 10import org.apache.logging.log4j.Logger; 11 12public class EstimateSystemAction { 13 14 private Logger logger = LogManager.getLogger(EstimateSystemAction.class); 15 16 private String input_adless; 17 private String searchHuman; 18 private String searchAdless; 19 20 public String execute() throws Exception { 21 22 try { 23 Driver d = (Driver) Class.forName( 24 "com.microsoft.sqlserver.jdbc.SQLServerDriver").getDeclaredConstructor().newInstance(); 25 String connUrl = 26 "jdbc:sqlserver://localhost\STRUTS;database=×××;" 27 + "integratedSecurity=false;user=×××;password=×××"; 28 Connection con = d.connect(connUrl, new Properties()); 29 30 String SQL = "SELECT NAME, ADLESS FROM TABLE_HUMAN WHERE ID = " + input_adless; 31 Statement stmt = con.createStatement(); 32 ResultSet rs = stmt.executeQuery(SQL); 33 34 while (rs.next()) { 35 searchHuman = rs.getString("NAME"); 36 searchAdless = rs.getString("ADLESS"); 37 } 38 39 rs.close(); 40 stmt.close(); 41 } 42 catch (Exception e) { 43 e.printStackTrace(); 44 throw e; 45 } 46 47 logger.info("入力されたパラメータは「{}」です。", searchHuman); 48 return "returnSearch"; 49 } 50 51 public String getInput_adless() { 52 return this.input_adless; 53 } 54 55 public void setInput_adless(String input_adless1) { 56 this.input_adless = input_adless1; 57 } 58 59 public String getSearchHuman() { 60 return searchHuman; 61 } 62 63 public void setSearchHuman(String searchhuman1) { 64 this.searchHuman = searchhuman1; 65 } 66 67 public String getSearchAdless() { 68 return searchAdless; 69 } 70 71 public void setSearchAdless(String searchAdless) { 72 this.searchAdless = searchAdless; 73 } 74}
xml
1<?xml version="1.0" encoding="UTF-8"?> 2 3<!DOCTYPE struts PUBLIC 4 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 5 "http://struts.apache.org/dtds/struts-2.0.dtd"> 6 7<struts> 8 <package name="default" extends="struts-default"> 9 <action name="search" class="estimatePackage.EstimateSystemAction" method="execute"> 10 <result name="returnSearch">/view/estimate/EstimateSystem.jsp</result> 11 </action> 12 </package> 13</struts>
jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ taglib prefix="s" uri="/struts-tags"%> 3 4<!DOCTYPE html> 5 6<html> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 <title>検索結果ページ</title> 10 </head> 11 <body> 12 <s:property value="searchHuman" /> 13 <br /> 14 15 <s:property value="searchAdless" /> 16 </body> 17</html>
xml
1<?xml version="1.0" encoding="UTF-8"?> 2 3<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns="http://xmlns.jcp.org/xml/ns/javaee" 5 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 6 id="WebApp_ID" version="3.1"> 7 8 <display-name>EstimateSystem</display-name> 9 <welcome-file-list> 10 <welcome-file>top.jsp</welcome-file> 11 </welcome-file-list> 12 13 <filter> 14 <filter-name>struts2</filter-name> 15 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> 16 </filter> 17 18 <filter-mapping> 19 <filter-name>struts2</filter-name> 20 <url-pattern>/*</url-pattern> 21 </filter-mapping> 22</web-app>
jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ taglib prefix="s" uri="/struts-tags"%> 3 4<!DOCTYPE html> 5<html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>トップページ</title> 9 </head> 10 <body> 11 <s:form action="search"> 12 <s:textfield name="input_adless" /> 13 <s:submit value="検索" /> 14 </s:form> 15 </body> 16</html>
試したこと
恐らく同じ問題を抱えておられたこちらの質問も参考にしてみたものの何も変わらず...。
web.xmlの記述に何か間違いがあるような気もするのですが、気がするだけで原因が特定できず...。
丸投げのような質問になってしまいますが、どうかご教授いただけますと幸いです。
もし他に必要な情報またはファイルがありましたらお申し付けください。
あなたの回答
tips
プレビュー