strutsでつくったプログラムに、ブラウザから、
http://localhost:7080/firstStruts/
でアクセスすると、エラーが出ます。ポート番号は正しいです。
思いつくところは直したのですが、なぜか関係ない、index.jsp の部分にエラーが出て困っています。
どうしたら画面が表示されるでしょうか。
おそらく、プロジェクトをブラウザで入ったとき、一番最初にどこのファイルを参照されるかがわかっていない、あるいは、パスの名前とクラスの名前を混同している、が原因なのかと思いますが、どう直せばよいかわからないです。
HTTPステータス 500 – Internal Server Error タイプ 例外報告 メッセージ [index.jsp] の処理中に行番号 [4] で例外が発生しました。 説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。 例外 org.apache.jasper.JasperException: [index.jsp] の処理中に行番号 [4] で例外が発生しました。 1: <%@ taglib uri="/tags/struts-logic" prefix="logic" %> 2: 3: <logic:redirect forward="welcome"/> 4: 5: 6: 7: <%-- Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:625) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) filter.EncodingFileter.doFilter(EncodingFileter.java:30) 根本原因 java.lang.NullPointerException org.apache.struts.taglib.TagUtils.computeURLWithCharEncoding(TagUtils.java:428) org.apache.struts.taglib.TagUtils.computeURLWithCharEncoding(TagUtils.java:311) org.apache.struts.taglib.logic.RedirectTag.generateRedirectURL(RedirectTag.java:294) org.apache.struts.taglib.logic.RedirectTag.doEndTag(RedirectTag.java:268) org.apache.jsp.index_jsp._jspx_meth_logic_005fredirect_005f0(index_jsp.java:167) org.apache.jsp.index_jsp._jspService(index_jsp.java:127) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) filter.EncodingFileter.doFilter(EncodingFileter.java:30) 注意 原因のすべてのスタックトレースは、サーバのログに記録されています
struts-config.xml
xml
1<!-- ================================================ Form Bean Definitions --> 2 3 <form-beans> 4 <form-bean type="form.CalcForm" name="CalcForm"/> 5 <form-bean type="view.CalcView" name="CalcView"/> 6 7 <!-- sample form bean descriptor for an ActionForm 8 <form-bean 9 name="inputForm" 10 type="app.InputForm"/> 11 end sample --> 12 13 <!-- sample form bean descriptor for a DynaActionForm 14 <form-bean 15 name="logonForm" 16 type="org.apache.struts.action.DynaActionForm"> 17 <form-property 18 name="username" 19 type="java.lang.String"/> 20 <form-property 21 name="password" 22 type="java.lang.String"/> 23 </form-bean> 24 end sample --> 25 26 </form-beans> 27 28 29<!-- ========================================= Global Exception Definitions --> 30 31 <global-exceptions> 32 <!-- sample exception handler 33 <exception 34 key="expired.password" 35 type="app.ExpiredPasswordException" 36 path="/changePassword.jsp"/> 37 end sample --> 38 </global-exceptions> 39 40 41<!-- =========================================== Global Forward Definitions --> 42 43 <global-forwards> 44 <!-- Default forward to "Welcome" action --> 45 <!-- Demonstrates using index.jsp to forward --> 46 <forward 47 name="welcome" 48 path="/Welcome.do"/> 49 </global-forwards> 50 51 52<!-- =========================================== Action Mapping Definitions --> 53 54 <action-mappings> 55 <!-- Default "Welcome" action --> 56 <!-- Forwards to Welcome.jsp --> 57 <action 58 path="/Welcome" 59 forward="/pages/Calc2.jsp"/> 60 61 <!-- 計算 --> 62 <action 63 path="/Calc" 64 type="action.CalcAction" 65 name="CalcForm" 66 scope="session" 67 validate="false" 68 input="Calc"> 69 <forward 70 name="success" 71 path="Calc" /> 72 </action> 73 74 <!-- 自作計算 --> 75 <action= 76 path="/Calc2" 77 type="action.CalcAction2" 78 name="CalcForm" 79 scope="session" 80 validate="false" 81 input="Calc2"> 82 <forward 83 name="success" 84 path="Calc2" /> 85 </action>
上記、長い為省略
index.jsp
jsp
1<%@ taglib uri="/tags/struts-logic" prefix="logic" %> 2 3<logic:redirect forward="welcome"/> 4 5 6 7<%-- 8Redirect default requests to Welcome global ActionForward. 9By using a redirect, the user-agent will change address to match the path of our Welcome ActionForward. 10--%> 11
welcome.jsp
jsp
1<%@ taglib uri="/tags/struts-bean" prefix="bean" %> 2<%@ taglib uri="/tags/struts-html" prefix="html" %> 3<%@ taglib uri="/tags/struts-logic" prefix="logic" %> 4 5<html:html locale="true"> 6<head> 7<title><bean:message key="welcome.title"/></title> 8<html:base/> 9</head> 10<body bgcolor="white"> 11 12<logic:notPresent name="org.apache.struts.action.MESSAGE" scope="application"> 13 <font color="red"> 14 ERROR: Application resources not loaded -- check servlet container 15 logs for error messages. 16 </font> 17</logic:notPresent> 18 19<h3><bean:message key="welcome.heading"/></h3> 20<p><bean:message key="welcome.message"/></p> 21 22</body> 23</html:html> 24
となります。
他、必要なファイルがありましたらご指摘ください。
とくに、どういった仕組みで、プロジェクトのパスで入ったときどこに飛ぶことになるのかを知りたいです。
よろしくお願いいたします。
以下追記
実行環境
Windows
Microsoft Windows [Version 10.0.17763.737]
Widnows10 Pro version 1809
Eclipse
Version: 2019-09 R (4.13.0)
Build id: 20190917-1200
Tomcat
9.0
Java
C:\Program Files (x86)\Java\jre1.8.0_221
C:\Program Files (x86)\Java\jdk1.5.0
Mysql
mysql Ver 8.0.17 for Win64 on x86_64 (MySQL Community Server - GPL)
mysql-connector-java-8.0.17.jar
Struts
Specification-Version: 1.2.9
あなたの回答
tips
プレビュー