2015-09-28 100 views
1

Struts2和瓷砖对我来说是新的。 我在Windows 8 OS.I正在逐渐在服务器日志中出现以下错误Struts2的Web应用程序集成的瓷砖:在struts2中使用瓷砖时出错

java.lang.NoClassDefFoundError: org/apache/tiles/web/startup/TilesListener 

java.lang.ClassNotFoundException: org.apache.tiles.web.startup.TilesListener 

我用下面的必要的罐子:

Struts2 core2.3.15- xwork-core-2.3.15.3.jar 
struts2-core-2.3.15.3.jar 
struts2-convention-plugin-2.3.15.3.jar 
ognl-3.0.6.jar 
javassist-3.11.0.GA.jar 
freemarker-2.3.19.jar 
commons-lang3-3.1.jar 
commons-io-2.0.1.jar 
commons-fileupload-1.3.jar 
load-1.3.jar 
asm-tree-3.3.jar 
asm-commons-3.3.jar 
asm-3.3.jar 
tiles-api-2.0.6-sources.jar 
tiles-compat-3.0.5.jar 
tiles-core-2.0.6-sources.jar 
tiles-jsp-3.0.5.jar 
tiles-servlet-3.0.5.jar 
tiles-portlet-2.1.4.jar 
struts2-tiles-plugin-2.3.15.1..jar 

web.xml配置:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 

<welcome-file-list> 
    <welcome-file>/Login.jsp</welcome-file> 
</welcome-file-list> 

<context-param> 
    <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name> 
    <param-value>/WEB-INF/tiles.xml</param-value> 
</context-param> 

<listener> 
    <listener-class> 
     org.apache.struts2.tiles.StrutsTilesListener 
    </listener-class> 
</listener> 
<context-param> 
    <param-name>tilesDefinitions</param-name> 
    <param-value>/WEB-INF/tiles.xml</param-value> 
</context-param> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 
</web-app> 

tiles.xml配置:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> 
<tiles-definitions> 
<definition name="BaseLayout" template="/BaseLayout.jsp"> 
     <put-attribute name="title" value=" " /> 
     <put-attribute name="header" value="/Header.jsp" /> 
     <put-attribute name="menu" value="/Menu.jsp" /> 
     <put-attribute name="body" value=" " /> 
     <put-attribute name="footer" value="/Footer.jsp" /> 
</definition> 

<definition name="/daywise.success.tiles" extends="BaseLayout"> 
     <put-attribute name="body" value="/BodyDayWiseSuccess.jsp" /> 
</definition> 

<definition name="/daywise.tiles" extends="BaseLayout"> 
     <put-attribute name="body" value="/BodyDayWise.jsp" /> 
</definition> 
</tiles-definitions> 

我错过了什么?我已经花了整整一天在谷歌搜索一个可能的解决方案,但没有得到正确的。

+0

我编辑了错误,请查阅... – dpk12

+0

是的...它的同一个问题!但没有人回答这个问题:( – dpk12

+0

@narahare这个问题是关于SO的话题,应该关闭,下面是你的问题的答案,在问你应该知道你在问什么问题之前 –

回答

0

这是不可能的全天搜索谷歌和找不到解决方案。你错过了一堂课。你需要一个类org.apache.tiles.web.startup.TilesListener,但是这个文件被发现在tiles-core-2.0.6.jar。这个文件你缺少。

如果您不想从网络下载每个文件,请使用pom.xml中的Maven配置,如使用下面的链接。 Maven会下载所有需要的依赖,当你建立一个使用mvn package

在这旁边有很多错误都是在项目文件的配置项目:利用错误和冗余

  • 弄乱不同版本的瓷砖
  • 上下文参数
  • 弄乱不同版本的支柱插件
  • 使用闲置librari缺少更多库的依赖
  • ES
  • 使用不支持Servlet版本

如果你不能找到Struts2的和Tiles2整合,你可以阅读this答案的链接,它有很多的代码示例的链接。

+0

谢谢你的答复.. .i尝试添加tiles-cores-2.0.6.jar,但仍然给出以下错误: - >引起来自:java.lang.ClassNotFoundException:org.apache.tiles.TilesException - > java.lang.IllegalStateException :ContainerBase.addChild:start:org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/ TimeSheetApp]] - > org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/ TimeSheetApp]] – dpk12

+0

这是另一个主题回答问题,阅读答案的其余部分,如果您发现它有用,请不要忘记提供帮助您解决问题的每个答案和问题。 –

+0

事情是我是新的,我不知道如何问问题和其他东西......并感谢很多的建议。我会跟随。 – dpk12