在struts2中使用tile

时间:2012-09-01 08:46:09

标签: struts2 tile

我正在关注Struts2中的Tile教程,但遇到了以下错误:

SEVERE: Error configuring application listener of class org.apache.struts2.tiles.StrutsTilesListener
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.tiles.web.startup.AbstractTilesListener.<init>(AbstractTilesListener.java:44)
at org.apache.tiles.web.startup.TilesListener.<init>(TilesListener.java:38)
at org.apache.struts2.tiles.StrutsTilesListener.<init>(StrutsTilesListener.java:48)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at  sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at     sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:125)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4715)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
    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:680)
    Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    ... 20 more
Sep 1, 2012 6:43:25 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Sep 1, 2012 6:43:25 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Sep 1, 2012 6:43:25 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/Tiles] startup failed due to previous errors
Sep 1, 2012 6:43:25 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-2005"]
Sep 1, 2012 6:43:25 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Sep 1, 2012 6:43:25 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1990 ms

我在Web-Content / lib文件夹中的所有jar文件如下:

axis.jar
axis2.war
axis2-1.6.2-bin.zip
axis2-1.6.2-src.zip
commons-beanutils-1.8.0.jar
commons-collections-3.2.1.jar
commons-digester-2.1.jar
commons-discovery-0.2.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-lang-2.3.jar
commons-logging.jar
commons-logging-api-1.1.jar
commons-validator-1.3.1.jar
freemarker-2.3.15.jar
freemarker-2.3.16.jar
javassist-3.7.1.GA.jar
jaxrpc.jar
jdom-1.1.jar
json-lib-2.1-jdk15.jar
junit-4.8.2.jar
mysql-connector-java-5.1.17.jar
ognl-3.0.jar
saaj.jar
saaj-api-1.3.jar
spring-beans-2.5.6.jar
spring-context-2.5.6.jar
spring-core-2.5.6.jar
spring-test-2.5.6.jar
spring-web-2.5.6.jar
sqlitejdbc-v056.jar
struts2-core-2.2.1.jar
struts2-dojo-plugin-2.2.1.jar
struts2-json-plugin-2.2.1.jar
struts2-junit-plugin-2.2.1.jar
struts2-spring-plugin-2.2.1.jar
struts2-tiles-plugin-2.2.1.jar
tiles-api-2.2.1.jar
tiles-compat-2.2.1.jar
tiles-core-2.2.1.jar
tiles-extras-2.2.1.jar
tiles-jsp-2.2.1.jar
tiles-portlet-2.2.1.jar
tiles-servlet-2.2.1.jar
wsdl4j.jar
xstream-1.2.2.jar
xwork-core-2.2.1.jar

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:2)

您添加错误消息显示缺少的库; SLF4J。

看起来你正在尝试手工进行依赖管理 - IMO这是一个非常糟糕的主意。它使升级变得困难,部署困难,难以理解编译,测试和部署要求之间的差异等等。

例如,为什么要部署源jar或junit?

答案 1 :(得分:0)

如果您收到以下错误: java.lang.NoClassDefFoundError:org / slf4j / LoggerFactory 在org.apache.tiles.web.startup.AbstractTilesListener。

添加此依赖项

<dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-core</artifactId>
            <version>2.2.2</version>
        </dependency>

或添加此jar: SLF4J-API-1.5.8.jar JCL-过SLF4J-1.5.8.jar