现在的位置: 首页 > 综合 > 正文

struts2.1.8与tiles2.1或2.2整合所遇到的问题

2016年10月30日 ⁄ 综合 ⁄ 共 3777字 ⁄ 字号 评论关闭
刚接触tiles,想整合到struts2,包和插件包假设都导入struts2.1.8 tiles2.2.2struts2-tiles-plugin-2.1.8.1.jar

在web.xml配置tiles的监听,
<listener>
  <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
启动tomcat报错:
严重: Error configuring application listener of classorg.apache.struts2.tiles.StrutsTilesListener
java.lang.NoClassDefFoundError:org/apache/tiles/web/startup/TilesListener
at java.lang.ClassLoader.defineClass1(Native Method)
atjava.lang.ClassLoader.defineClass(ClassLoader.java:621)
atjava.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
atorg.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2527)
atorg.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010)
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
atorg.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3915)
atorg.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
atorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
atorg.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
atorg.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
atorg.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
atorg.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
atorg.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
atorg.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
atorg.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
atorg.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
atorg.apache.catalina.core.StandardHost.start(StandardHost.java:785)
atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
atorg.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
atorg.apache.catalina.core.StandardService.start(StandardService.java:519)
atorg.apache.catalina.core.StandardServer.start(StandardServer.java:710)
atorg.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
atorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException:org.apache.tiles.web.startup.TilesListener
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
atjava.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 31 more
2010-7-25 15:07:30 org.apache.catalina.core.StandardContextlistenerStart
严重: Skipped installing application listeners due to previouserror(s)
2010-7-25 15:07:30 org.apache.catalina.core.StandardContextstart
严重: Error listenerStart
2010-7-25 15:07:30 org.apache.catalina.core.StandardContextstart
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结合.还有待研究...

抱歉!评论已关闭.