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

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

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

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

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

4496閲覧

Struts2.5.25へのアップデートでStrutsTilesListenerがClassNotFoundException

nok123

総合スコア11

Java

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

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

1クリップ

投稿2020/11/12 13:24

Struts2.3.32からStruts2.5.25へアップデートを試みています。

パッケージの変更等に伴うコンパイルエラーやxmlの修正は一通り行いましたが、
下記エラーが解消できません。
java.lang.ClassNotFoundException: org.apache.struts2.tiles.StrutsTilesListener

「struts2-tiles-plugin-2.5.25.jar」は含んでいるため、
org.apache.struts2.tiles.StrutsTilesListenerは参照ライブラリに存在します。
(ライブラリはMavenを使用せず、jarを追加する形になっています。)

どうかお力を貸していただけないでしょうか。

log

1重大: クラス org.apache.struts2.tiles.StrutsTilesListener のアプリケーションリスナの設定中にエラーが発生しました 2java.lang.ClassNotFoundException: org.apache.struts2.tiles.StrutsTilesListener 3 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285) 4 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119) 5 at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:511) 6 at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:492) 7 at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 8 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4676) 9 at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5216) 10 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 11 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) 12 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) 13 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) 14 at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:596) 15 at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1805) 16 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 17 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 18 at java.util.concurrent.FutureTask.run(FutureTask.java:166) 19 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 20 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 21 at java.lang.Thread.run(Thread.java:722)

↓web.xml

xml

1<?xml version="1.0" encoding="ISO-8859-1"?> 2<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 4 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 5 version="3.0" metadata-complete="true"> 6 7 <listener> 8 <listener-class>xx.xx.xx.listener.InitialServletContext</listener-class> 9 </listener> 10 <listener> 11 <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class> 12 </listener> 13 14 <filter> 15 <filter-name>struts2</filter-name> 16 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> 17 18 <init-param> 19 <param-name>actionPackages</param-name> 20 <param-value> 21 xx.xx.xx.common.struts, 22 xx.xx.xx.action 23 </param-value> 24 </init-param> 25 <init-param> 26 <param-name>struts.devMode</param-name> 27 <param-value>false</param-value> 28 </init-param> 29 <init-param> 30 <param-name>struts.custom.i18n.resources</param-name> 31 <param-value>ApplicationResources</param-value> 32 </init-param> 33 </filter> 34 <filter-mapping> 35 <filter-name>struts2</filter-name> 36 <url-pattern>/xxx/*</url-pattern> 37 </filter-mapping> 38 39 <welcome-file-list> 40 <welcome-file>/index.html</welcome-file> 41 </welcome-file-list> 42 43 <error-page> 44 <error-code>401</error-code> 45 <location>/WEB-INF/tiles/panel/basic/httpUnauthorizedLayout.jsp</location> 46 </error-page> 47 <error-page> 48 <error-code>403</error-code> 49 <location>/WEB-INF/tiles/panel/basic/httpForbiddenLayout.jsp</location> 50 </error-page> 51 <error-page> 52 <error-code>404</error-code> 53 <location>/WEB-INF/tiles/panel/basic/httpNotfoundLayout.jsp</location> 54 </error-page> 55 <error-page> 56 <error-code>500</error-code> 57 <location>/WEB-INF/tiles/panel/basic/httpInternalErrorLayout.jsp</location> 58 </error-page> 59 60 <session-config> 61 <session-timeout>1440</session-timeout> 62 </session-config> 63</web-app>

↓struts.xml

xml

1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" 4 "http://struts.apache.org/dtds/struts-2.5.dtd"> 5 6<struts> 7 8 <constant name="struts.action.extension" value="" /> 9 10 <constant name="struts.multipart.maxSize" value="5097152" /> 11 12 <package name="struts-xxx" namespace="/xxx" extends="struts-default"> 13 </package> 14 15 <package name="json-xxx" namespace="/xxx" extends="json-default"> 16 </package> 17 18</struts>

↓tiles.xml

xml

1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE tiles-definitions PUBLIC 3 "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 4 "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 5<tiles-definitions> 6 <definition name="xxx" extends="xxx"> 7 ~省略~ 8 </definition> 9</tiles-definitions>

環境は下記の通りです。
Windows10
Eclipse
Java 1.7
Tomcat 8.0

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

私もStruts2の移行中で、つい昨日そこで止まりました。

Listenerのクラスが変わったようです。
Tiles3 pluginのStruts2説明

xml

1 <listener> 2 <listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class> 3 </listener>

でそのエラーは解決できるかと思います。
ただ、私の環境はStruts2-Tiles3なので完全に解決できるとは限りませんが。。

Struts2.3→2.5は結構大変ですが共に頑張りましょう!!

投稿2020/11/13 01:53

wingedtw

総合スコア9

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

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

nok123

2020/11/13 04:00 編集

回答ありがとうございます! これが抜け出せずに数日間格闘しています(T_T) 変更してみましたが、ClassNotFoundExceptionは解消できませんでした。。 `java.lang.ClassNotFoundException: org.apache.tiles.extras.complete.CompleteAutoloadTilesListener` StrutsTilesListenerは参照できていたけれど、 CompleteAutoloadTilesListenerは参照ライブラリに見つからなかったので、 ライブラリが違うのでしょうか。 struts2.5.25のライブラリ群に含まれていたtilesは、下記のバージョンでした。 ・struts2-tiles-plugin-2.5.25.jar ・tiles-api-3.0.8.jar (その他tiles関連は3.0.8) 同梱されていても互換性があるとは限らないのでしょうか。 そんなわけないですよね、、 引き続き回答いただけると助かります。
wingedtw

2020/11/13 04:49 編集

MavenやGradleで依存関係を管理されているとこの辺は解決されるようなのですが、もし手でライブラリを管理されている場合で、Struts2.5とTiles3を連携するには、tiles-extrasが別途必要のようです。 Maven repository: https://repo1.maven.org/maven2/org/apache/tiles/tiles-extras/3.0.8/ Struts2.5のFull Dependenciesダウンロードでもこちらは入ってないようなので上リンクから取得していただければいいのかな、と思います。
nok123

2020/11/14 12:12

お返事遅くなってすみません。 tiles-extrasを取得して試みましたが、うまくいかず、、 冷静になって自分の環境を見直したところ、ライブラリ群をWEB-INF/lib_tempに入れていました。 (移行のためにフォルダ名を一時的に付け替えていた) コンパイルが通っていたので気づかなかったのですが、実行時にはWEB-INF/libを参照するからでした。。 こんな間違いをする人はいないと思いますが、 せめてだれかのお役に立てますように、、 wingedtw様 至らない質問に丁寧に回答してくださり、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問