質問編集履歴

2

actionの名称変更

2023/09/29 09:46

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,249 +1,249 @@
1
- ### 概要
2
- tilesのエラーメッセージで手詰まりとなっています。
3
-
4
- Struts2.3から2.5へアップデートした際、tilesについても内包されているtiles3に置き換わりました。
5
- tomcat起動後、ログインページのログインボタンを押下するとエラーメッセージが表示されます。
6
-
7
- ・エラーメッセージ
8
- 2020/10/30 13:40:15:809 WARN org.apache.struts2.views.tiles.TilesResult (138) got TilesException while checking if definiton exists, ignoring it
9
- org.apache.tiles.definition.DefinitionsFactoryException: I/O Error reading definitions.
10
- at org.apache.tiles.definition.digester.DigesterDefinitionsReader.read(DigesterDefinitionsReader.java:331) ~[tiles-core-3.0.8.jar:3.0.8]
11
- at org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO.loadDefinitionsFromResource(BaseLocaleUrlDefinitionDAO.java:150) ~[tiles-core-3.0.8.jar:3.0.8]
12
- at org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.loadRawDefinitionsFromResources(CachingLocaleUrlDefinitionDAO.java:239) ~[tiles-core-3.0.8.jar:
13
- -----省略-----
14
- 2020/10/30 13:40:15:843 WARN org.apache.struts2.views.tiles.TilesResult (154) could not find @TilesDefinition for action: falgc00300
15
-
16
- エラーメッセージによるとfalgc00300が認識できていないようなのですが、実装を見直しても欠けている箇所はないように思います。
17
-
18
- ### ソースコード
19
- 以下、ソースコードになります。
20
-
21
- frame.jsp(tilesを用いてページの構造を作っています)
22
- ```jsp
23
- <%@ page language="java" contentType="text/html; charset=UTF-8"
24
- pageEncoding="UTF-8"%>
25
- <%@ taglib prefix="s" uri="/struts-tags"%>
26
- <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
27
- <!DOCTYPE html>
28
- <html lang="ja">
29
- <head>
30
- <meta charset="utf-8">
31
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
32
-
33
- <title>test</title>
34
- </head>
35
- <body>
36
- <div id="top">
37
- <div id="wrapper">
38
- <!-- ヘッダー領域 -->
39
- <tiles:insertAttribute name="header" />
40
-
41
- <div id="contents">
42
- <!-- サイドバー領域 -->
43
- <tiles:insertAttribute name="subMenu" />
44
-
45
- <!-- メイン領域 -->
46
- <tiles:insertAttribute name="content" />
47
- </div>
48
- <!-- フッター -->
49
- <tiles:insertAttribute name="footer" />
50
- </div>
51
- </div>
52
- </body>
53
- </html>
54
- ```
55
-
56
- Page003.jsp(ログイン後表示されるメインメニューのjsp)
57
- ```jsp
58
- <%@ page language="java" contentType="text/html; charset=UTF-8"
59
- pageEncoding="UTF-8"%>
60
- <%@ taglib prefix="s" uri="/struts-tags"%>
61
- <%@ taglib tagdir="/WEB-INF/tags" prefix="ctag"%>
62
- <script src="./script/paging.js"></script>
63
- <script type="text/javascript">
64
- </script>
65
- <s:form action="page003">
66
- <div id="main">
67
- -----省略-----
68
- </div>
69
- <!-- /#main -->
70
- </s:form>
71
- ```
72
-
73
- Page003Action.java(ログイン後表示されるメインメニューのAction)
74
- ```java
75
- package jp.co.hoge.fuga.action.top;
76
-
77
- import java.io.File;
78
- import java.sql.SQLException;
79
- import java.util.Calendar;
80
- import java.util.Date;
81
- import java.util.HashMap;
82
- import java.util.List;
83
-
84
- import org.apache.commons.lang3.StringUtils;
85
- import org.apache.commons.lang3.time.DateUtils;
86
-
87
- import com.opensymphony.xwork2.ModelDriven;
88
-
89
- public class Page003Action extends BaseAction implements ModelDriven<Page003> {
90
- /**
91
- *
92
- */
93
- private static final long serialVersionUID = 1L;
94
-
95
- /**
96
- * モデルクラス
97
- */
98
- private Page003 model = new Page003();
99
-
100
- @Override
101
- public Page003 getModel() {
102
- return model;
103
- }
104
-
105
- /**
106
- * デフォルトメソッド
107
- */
108
- public String execute() {
109
- return "success";
110
- }
111
- }
112
-
113
- ```
114
-
115
- web.xml
116
- ```xml
117
- <?xml version="1.0" encoding="UTF-8"?>
118
- <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
119
-
120
- <display-name>Struts Blank</display-name>
121
- <distributable />
122
-
123
- <filter>
124
- <filter-name>struts2</filter-name>
125
- <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
126
- </filter>
127
-
128
- <listener>
129
- <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
130
- </listener>
131
-
132
- <filter-mapping>
133
- <filter-name>struts2</filter-name>
134
- <url-pattern>/*</url-pattern>
135
- <dispatcher>REQUEST</dispatcher>
136
- <dispatcher>FORWARD</dispatcher>
137
- </filter-mapping>
138
-
139
- <welcome-file-list>
140
- <welcome-file>index.jsp</welcome-file>
141
- </welcome-file-list>
142
- </web-app>
143
-
144
- ```
145
-
146
-
147
- struts.xml
148
- ```xml
149
- <?xml version="1.0" encoding="UTF-8" ?>
150
- <!DOCTYPE struts PUBLIC
151
- "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
152
- "http://struts.apache.org/dtds/struts-2.5.dtd">
153
-
154
- <struts>
155
- <constant name="struts.enable.DynamicMethodInvocation" value="true" />
156
- <constant name="struts.devMode" value="false" />
157
- <constant name="struts.ui.theme" value="simple" />
158
- <constant name="struts.action.extension" value="do,action,json" />
159
- <constant name="struts.multipart.maxSize" value="104857600" />
160
- <constant name="struts.custom.i18n.resources" value="constant,message" />
161
- <constant name="struts.appVersion" value="X.X.X" />
162
-
163
- <package name="default" namespace="/" extends="struts-default">
164
- <result-types>
165
- <result-type name="tiles"
166
- class="org.apache.struts2.views.tiles.TilesResult" />
167
- </result-types>
168
-
169
- -----省略-----
170
-
171
- <!-- ログイン -->
172
- <action name="page001" class="jp.co.hoge.fuga.action.Page001Action">
173
- <result name="success">/WEB-INF/jsp/Page001.jsp</result>
174
- <result name="input">/WEB-INF/jsp/Page001.jsp</result>
175
- <result name="login_success" type="chain">page003</result>
176
- </action>
177
- <!-- TOP メインメニュー -->
178
- <action name="page003" class="jp.co.hoge.fuga.action.top.Page003Action">
179
- <result name="success" type="tiles">Page003</result>
180
- </action>
181
-
182
- -----省略-----
183
-
184
- </package>
185
-
186
- -----省略-----
187
-
188
- <include file="webapi.xml" />
189
- </struts>
190
- ```
191
-
192
- tiles.xml
193
- ```xml
194
- <?xml version="1.0" encoding="UTF-8" ?>
195
- <!DOCTYPE tiles-definitions PUBLIC
196
- "-//Apache Software Foundation//DTD Tiles Configuration 2.5//EN"
197
- "http://struts.apache.org/dtds/struts-2.5.dtd">
198
- <tiles-definitions>
199
- <definition name="admin.default" template="/WEB-INF/jsp/tiles/frame/frame.jsp">
200
- <put-attribute name="header"
201
- value="/WEB-INF/jsp/tiles/frame/header.jsp" />
202
- <put-attribute name="subMenu"
203
- value="/WEB-INF/jsp/tiles/frame/subMenu.jsp" />
204
- <put-attribute name="mainFooter"
205
- value="/WEB-INF/jsp/tiles/frame/mainFooter.jsp" />
206
- <put-attribute name="footer"
207
- value="/WEB-INF/jsp/tiles/frame/footer.jsp" />
208
- </definition>
209
-
210
- -----省略-----
211
-
212
- <definition name="Page001" extends="admin.default">
213
- <put-attribute name="content" value="/WEB-INF/jsp/Page001.jsp" />
214
- <put-attribute name="script" value="page001" />
215
- </definition>
216
- <definition name="Page003" extends="admin.default">
217
- <put-attribute name="content" value="/WEB-INF/jsp/top/Page003.jsp" />
218
- <put-attribute name="script" value="page003" />
219
- </definition>
220
-
221
- -----省略-----
222
-
223
- </tiles-definitions>
224
- ```
225
-
226
- ### 確認できていること
227
- ログインページでログインボタンを押下するとPage001Action.javaのログイン処理が起動し、ユーザ照合が行われたのち、login_successを返却しています。
228
- 以降struts.xmlの
229
- <result name="login_success" type="chain">page003</result>
230
- の記述に従って、Page003Action.javaのexecute()が実行され、successを返却しているていることはデバッグで確認済みです。
231
-
232
- successが返却されるとstruts.xmlの記述に従ってPage003.jspが起動する認識でいるのですが、上述したようなエラーが表示されてしまいます。
233
-
234
- ### 主な使用ライブラリ
235
- struts2-config-browser-plugin-2.5.22.jar
236
- struts2-convention-plugin-2.5.22.jar
237
- struts2-core-2.5.22.jar
238
- struts2-tiles-plugin-2.5.22.jar
239
- tiles-api-3.0.8.jar
240
- tiles-autotag-core-runtime-1.2.jar
241
- tiles-core-3.0.8.jar
242
- tiles-jsp-3.0.8.jar
243
- tiles-request-api-1.0.7.jar
244
- tiles-request-servlet-1.0.7.jar
245
- tiles-servlet-3.0.8.jar
246
- tiles-template-3.0.8.jar
247
-
248
-
1
+ ### 概要
2
+ tilesのエラーメッセージで手詰まりとなっています。
3
+
4
+ Struts2.3から2.5へアップデートした際、tilesについても内包されているtiles3に置き換わりました。
5
+ tomcat起動後、ログインページのログインボタンを押下するとエラーメッセージが表示されます。
6
+
7
+ ・エラーメッセージ
8
+ 2020/10/30 13:40:15:809 WARN org.apache.struts2.views.tiles.TilesResult (138) got TilesException while checking if definiton exists, ignoring it
9
+ org.apache.tiles.definition.DefinitionsFactoryException: I/O Error reading definitions.
10
+ at org.apache.tiles.definition.digester.DigesterDefinitionsReader.read(DigesterDefinitionsReader.java:331) ~[tiles-core-3.0.8.jar:3.0.8]
11
+ at org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO.loadDefinitionsFromResource(BaseLocaleUrlDefinitionDAO.java:150) ~[tiles-core-3.0.8.jar:3.0.8]
12
+ at org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO.loadRawDefinitionsFromResources(CachingLocaleUrlDefinitionDAO.java:239) ~[tiles-core-3.0.8.jar:
13
+ -----省略-----
14
+ 2020/10/30 13:40:15:843 WARN org.apache.struts2.views.tiles.TilesResult (154) could not find @TilesDefinition for action: Page003
15
+
16
+ エラーメッセージによるとPage003が認識できていないようなのですが、実装を見直しても欠けている箇所はないように思います。
17
+
18
+ ### ソースコード
19
+ 以下、ソースコードになります。
20
+
21
+ frame.jsp(tilesを用いてページの構造を作っています)
22
+ ```jsp
23
+ <%@ page language="java" contentType="text/html; charset=UTF-8"
24
+ pageEncoding="UTF-8"%>
25
+ <%@ taglib prefix="s" uri="/struts-tags"%>
26
+ <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
27
+ <!DOCTYPE html>
28
+ <html lang="ja">
29
+ <head>
30
+ <meta charset="utf-8">
31
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
32
+
33
+ <title>test</title>
34
+ </head>
35
+ <body>
36
+ <div id="top">
37
+ <div id="wrapper">
38
+ <!-- ヘッダー領域 -->
39
+ <tiles:insertAttribute name="header" />
40
+
41
+ <div id="contents">
42
+ <!-- サイドバー領域 -->
43
+ <tiles:insertAttribute name="subMenu" />
44
+
45
+ <!-- メイン領域 -->
46
+ <tiles:insertAttribute name="content" />
47
+ </div>
48
+ <!-- フッター -->
49
+ <tiles:insertAttribute name="footer" />
50
+ </div>
51
+ </div>
52
+ </body>
53
+ </html>
54
+ ```
55
+
56
+ Page003.jsp(ログイン後表示されるメインメニューのjsp)
57
+ ```jsp
58
+ <%@ page language="java" contentType="text/html; charset=UTF-8"
59
+ pageEncoding="UTF-8"%>
60
+ <%@ taglib prefix="s" uri="/struts-tags"%>
61
+ <%@ taglib tagdir="/WEB-INF/tags" prefix="ctag"%>
62
+ <script src="./script/paging.js"></script>
63
+ <script type="text/javascript">
64
+ </script>
65
+ <s:form action="page003">
66
+ <div id="main">
67
+ -----省略-----
68
+ </div>
69
+ <!-- /#main -->
70
+ </s:form>
71
+ ```
72
+
73
+ Page003Action.java(ログイン後表示されるメインメニューのAction)
74
+ ```java
75
+ package jp.co.hoge.fuga.action.top;
76
+
77
+ import java.io.File;
78
+ import java.sql.SQLException;
79
+ import java.util.Calendar;
80
+ import java.util.Date;
81
+ import java.util.HashMap;
82
+ import java.util.List;
83
+
84
+ import org.apache.commons.lang3.StringUtils;
85
+ import org.apache.commons.lang3.time.DateUtils;
86
+
87
+ import com.opensymphony.xwork2.ModelDriven;
88
+
89
+ public class Page003Action extends BaseAction implements ModelDriven<Page003> {
90
+ /**
91
+ *
92
+ */
93
+ private static final long serialVersionUID = 1L;
94
+
95
+ /**
96
+ * モデルクラス
97
+ */
98
+ private Page003 model = new Page003();
99
+
100
+ @Override
101
+ public Page003 getModel() {
102
+ return model;
103
+ }
104
+
105
+ /**
106
+ * デフォルトメソッド
107
+ */
108
+ public String execute() {
109
+ return "success";
110
+ }
111
+ }
112
+
113
+ ```
114
+
115
+ web.xml
116
+ ```xml
117
+ <?xml version="1.0" encoding="UTF-8"?>
118
+ <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
119
+
120
+ <display-name>Struts Blank</display-name>
121
+ <distributable />
122
+
123
+ <filter>
124
+ <filter-name>struts2</filter-name>
125
+ <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
126
+ </filter>
127
+
128
+ <listener>
129
+ <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
130
+ </listener>
131
+
132
+ <filter-mapping>
133
+ <filter-name>struts2</filter-name>
134
+ <url-pattern>/*</url-pattern>
135
+ <dispatcher>REQUEST</dispatcher>
136
+ <dispatcher>FORWARD</dispatcher>
137
+ </filter-mapping>
138
+
139
+ <welcome-file-list>
140
+ <welcome-file>index.jsp</welcome-file>
141
+ </welcome-file-list>
142
+ </web-app>
143
+
144
+ ```
145
+
146
+
147
+ struts.xml
148
+ ```xml
149
+ <?xml version="1.0" encoding="UTF-8" ?>
150
+ <!DOCTYPE struts PUBLIC
151
+ "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
152
+ "http://struts.apache.org/dtds/struts-2.5.dtd">
153
+
154
+ <struts>
155
+ <constant name="struts.enable.DynamicMethodInvocation" value="true" />
156
+ <constant name="struts.devMode" value="false" />
157
+ <constant name="struts.ui.theme" value="simple" />
158
+ <constant name="struts.action.extension" value="do,action,json" />
159
+ <constant name="struts.multipart.maxSize" value="104857600" />
160
+ <constant name="struts.custom.i18n.resources" value="constant,message" />
161
+ <constant name="struts.appVersion" value="X.X.X" />
162
+
163
+ <package name="default" namespace="/" extends="struts-default">
164
+ <result-types>
165
+ <result-type name="tiles"
166
+ class="org.apache.struts2.views.tiles.TilesResult" />
167
+ </result-types>
168
+
169
+ -----省略-----
170
+
171
+ <!-- ログイン -->
172
+ <action name="page001" class="jp.co.hoge.fuga.action.Page001Action">
173
+ <result name="success">/WEB-INF/jsp/Page001.jsp</result>
174
+ <result name="input">/WEB-INF/jsp/Page001.jsp</result>
175
+ <result name="login_success" type="chain">page003</result>
176
+ </action>
177
+ <!-- TOP メインメニュー -->
178
+ <action name="page003" class="jp.co.hoge.fuga.action.top.Page003Action">
179
+ <result name="success" type="tiles">Page003</result>
180
+ </action>
181
+
182
+ -----省略-----
183
+
184
+ </package>
185
+
186
+ -----省略-----
187
+
188
+ <include file="webapi.xml" />
189
+ </struts>
190
+ ```
191
+
192
+ tiles.xml
193
+ ```xml
194
+ <?xml version="1.0" encoding="UTF-8" ?>
195
+ <!DOCTYPE tiles-definitions PUBLIC
196
+ "-//Apache Software Foundation//DTD Tiles Configuration 2.5//EN"
197
+ "http://struts.apache.org/dtds/struts-2.5.dtd">
198
+ <tiles-definitions>
199
+ <definition name="admin.default" template="/WEB-INF/jsp/tiles/frame/frame.jsp">
200
+ <put-attribute name="header"
201
+ value="/WEB-INF/jsp/tiles/frame/header.jsp" />
202
+ <put-attribute name="subMenu"
203
+ value="/WEB-INF/jsp/tiles/frame/subMenu.jsp" />
204
+ <put-attribute name="mainFooter"
205
+ value="/WEB-INF/jsp/tiles/frame/mainFooter.jsp" />
206
+ <put-attribute name="footer"
207
+ value="/WEB-INF/jsp/tiles/frame/footer.jsp" />
208
+ </definition>
209
+
210
+ -----省略-----
211
+
212
+ <definition name="Page001" extends="admin.default">
213
+ <put-attribute name="content" value="/WEB-INF/jsp/Page001.jsp" />
214
+ <put-attribute name="script" value="page001" />
215
+ </definition>
216
+ <definition name="Page003" extends="admin.default">
217
+ <put-attribute name="content" value="/WEB-INF/jsp/top/Page003.jsp" />
218
+ <put-attribute name="script" value="page003" />
219
+ </definition>
220
+
221
+ -----省略-----
222
+
223
+ </tiles-definitions>
224
+ ```
225
+
226
+ ### 確認できていること
227
+ ログインページでログインボタンを押下するとPage001Action.javaのログイン処理が起動し、ユーザ照合が行われたのち、login_successを返却しています。
228
+ 以降struts.xmlの
229
+ <result name="login_success" type="chain">page003</result>
230
+ の記述に従って、Page003Action.javaのexecute()が実行され、successを返却しているていることはデバッグで確認済みです。
231
+
232
+ successが返却されるとstruts.xmlの記述に従ってPage003.jspが起動する認識でいるのですが、上述したようなエラーが表示されてしまいます。
233
+
234
+ ### 主な使用ライブラリ
235
+ struts2-config-browser-plugin-2.5.22.jar
236
+ struts2-convention-plugin-2.5.22.jar
237
+ struts2-core-2.5.22.jar
238
+ struts2-tiles-plugin-2.5.22.jar
239
+ tiles-api-3.0.8.jar
240
+ tiles-autotag-core-runtime-1.2.jar
241
+ tiles-core-3.0.8.jar
242
+ tiles-jsp-3.0.8.jar
243
+ tiles-request-api-1.0.7.jar
244
+ tiles-request-servlet-1.0.7.jar
245
+ tiles-servlet-3.0.8.jar
246
+ tiles-template-3.0.8.jar
247
+
248
+
249
249
  ご教示のほどよろしくお願いいたします。

1

tiles.xmlのdefinitionタグname句をpageからPageに修正

2020/11/02 04:48

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -209,11 +209,11 @@
209
209
 
210
210
  -----省略-----
211
211
 
212
- <definition name="page001" extends="admin.default">
212
+ <definition name="Page001" extends="admin.default">
213
213
  <put-attribute name="content" value="/WEB-INF/jsp/Page001.jsp" />
214
214
  <put-attribute name="script" value="page001" />
215
215
  </definition>
216
- <definition name="page003" extends="admin.default">
216
+ <definition name="Page003" extends="admin.default">
217
217
  <put-attribute name="content" value="/WEB-INF/jsp/top/Page003.jsp" />
218
218
  <put-attribute name="script" value="page003" />
219
219
  </definition>