2011-05-16 58 views
1

這是我在web.xml配置問題在配置項目用struts +瓷磚+行家

<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> 

    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

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

struts.xml

<package name="default" extends="struts-default, tiles-default"> 
    <action name="home" class="controller.HomeController"> 
     <result name="success" type="tiles">home</result> 
    </action> 
</package> 

tiles.xml

<definition name="home" template="/layout.jsp"> 
    <put-attribute name="body" value="/WEB-INF/pages/home.jsp"/> 
</definition> 

中的pom.xml

<dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-core</artifactId> 
     <version>2.2.1</version> 
     <type>pom</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.struts.xwork</groupId> 
     <artifactId>xwork-core</artifactId> 
     <version>2.2.1</version> 
     <type>pom</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-core</artifactId> 
     <version>2.2.2</version> 
     <type>pom</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-jsp</artifactId> 
     <version>2.2.2</version> 
     <type>pom</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-spring-plugin</artifactId> 
     <version>2.2.1</version> 
     <type>pom</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tiles</groupId> 
     <artifactId>tiles-extras</artifactId> 
     <version>2.2.2</version> 
     <type>pom</type> 
     <scope>compile</scope> 
    </dependency> 

下面是完整的堆棧跟蹤:

SEVERE: Error configuring application listener of class org.apache.struts2.tiles.StrutsTilesListener 
java.lang.ClassNotFoundException: org.apache.struts2.tiles.StrutsTilesListener 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4537) 
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5097) 
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5092) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

回答

1

缺少類路徑struts2-tiles-plugin-2.2.x.jar,與依賴:

<dependency> 
    <groupId>org.apache.struts</groupId> 
    <artifactId>struts2-tiles-plugin</artifactId> 
    <version>${version.tiles}</version> 
    <scope>compile</scope> 
</dependency> 

可以解決ClassNotFoundExceptionfindJAR
http://www.findjar.com/index.x?query=org.apache.struts2.tiles.StrutsTilesListener

+0

加入支柱瓷磚,插件:( – 2011-05-16 09:58:06

+1

不過'ClassNotFoundException'爲'StrutsTilesListener' 後,我仍然得到這個錯誤?添加** [行家依賴發現可用的依賴關係(http://mvnrepository.com/artifact/org.apache.struts/struts2-tiles-plugin/2.2.1)的'struts2的瓷磚,plugin'? – lschin 2011-05-16 10:19:09

+0

**我得到了同樣的錯誤版本2.1。 8,當我改變到2.2.1版本把它扔到了這個錯誤'NoClassDefFoundError的:組織/ SLF4J/LoggerFactory'我添加了所有當我搜索在日食,但我仍然得到這個錯誤中發現可用的依賴性:( – 2011-05-16 10:47:02

0

我猜你缺少struts2-tiles-plugin

+0

添加struts-tiles-plugin :( – 2011-05-16 09:58:11

+1

@Hatake後仍然出現此錯誤。爲什麼''設置爲* pom *?你可以嘗試刪除它嗎?如果編譯不需要依賴關係,但只有運行時需要,則將''設置爲* runtime *。 – Raghuram 2011-05-16 10:58:06

+0

我不知道的類型,我加depenencies使用eclipse的工具,我試圖消除這些類型的值,改變運行時,你告訴我,但什麼都沒有改變,我得到了瓷磚插件版本2.1.8,當同樣的錯誤我更改爲版本2.2.1,它拋出了這個錯誤:NoClassDefFoundError:org/slf4j/LoggerFactory。我添加了所有當我搜索在日食,但我仍然得到這個錯誤 – 2011-05-16 11:04:37