原文地址:struts2.1.8 tiles2.1或2.2遇到的问题
作者:jsun789
刚接触tiles,想整合到struts2,包和插件包假设都导入struts2.1.8 tiles2.2.2 struts2-tiles-plugin-2.1.8.1.jar
在web.xml配置tiles的监听,
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
<listener>
</listener>
启动tomcat报错:
严重: Error configuring application listener of class org.apache.struts2.tiles.StrutsTilesListener
java.lang.NoClassDefFoundError: org/apache/tiles/web/startup/TilesListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2527)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3915)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl
.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl
.invoke(NativeMethodAccessorImpl
.java:39)
at sun.reflect.DelegatingMethodAccessor
Impl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: org.apache.tiles.web.startup.TilesListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 31 more
2010-7-25 15:07:30 org.apache.catalina.core.StandardContext listenerStart
严重: Skipped installing application listeners due to previous error(s)
2010-7-25 15:07:30 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2010-7-25 15:07:30 org.apache.catalina.core.StandardContext start
org.apache.struts2.tiles.StrutsTilesListener类是存在的.在struts2-tiles-plugin-2.1.8.1.jar包里,
但报java.lang.NoClassDefFoundError: org/apache/tiles/web/startup/TilesListener这个类 在哪呢.这个类是org.apache.struts2.tiles.StrutsTilesListener这个监听继承的类.本来应该在tiles-core-2.2.2.jar里头.但tiles-core-2.2.2.jar这个2.2.2的版本没那个类.
可能tiles-core-2.2.2.jar改了另外一种方式,等等再找找方法.
http://archive.apache.org/dist/tiles/
到这里下了一些版本,发现2.0.* 有包含rg/apache/tiles/web/startup/TilesListener 类..接下来 可想而知了.只是tiles-core-2.2.2.jar
用了什么方法和struts2结合.还有待研究...