2012-06-25 39 views
0

我正在编写一个Web项目,该项目在Apache Tomcat 5.0和JDK 1.4.2之上使用Spring Framework 2.5。Spring 2.5无法与Tomcat 5一起工作

当Tomcat启动时,它从未加载过Spring。

在web.xml是象下面这样:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5"> 
<display-name>TestSpring25Web</display-name> 
<listener> 
    <description> 
    loads the spring application context on startup 
</description> 
    <display-name>spring application context loader listener</display-name> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/web-applicationContext.xml</param-value> 
</context-param> 
<context-param> 
    <param-name>locatorFactorySelector</param-name> 
    <param-value> 
    classpath:Spring-config.xml 
</param-value> 
</context-param> 
<context-param> 
    <param-name>parentContextKey</param-name> 
    <param-value>businessBeanFactory</param-value> 
</context-param> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 
<resource-ref> 
    <description>DB Connection</description> 
    <res-ref-name>jdbc/TestDB</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 
<servlet> 
    <description></description> 
    <display-name>QueryDS</display-name> 
    <servlet-name>QueryDS</servlet-name> 
    <servlet-class>servlet.QueryDS</servlet-class> 
</servlet> 
<!-- DWR --> 
<servlet> 
    <display-name>DWR Servlet</display-name> 
    <servlet-name>dwr-invoker</servlet-name> 
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> 
    <init-param> 
     <param-name>debug</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>QueryDS</servlet-name> 
    <url-pattern>/QueryDS</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>dwr-invoker</servlet-name> 
    <url-pattern>/dwr/*</url-pattern> 
</servlet-mapping> 
</web-app> 

的 “网络applicationContext.xml中” 就像是:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd 
http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> 

</beans> 

控制台给了我下面的日志堆栈跟踪:

SEVERE:配置类org.springframework.web.context.ContextLoaderListener的应用程序侦听器时出错。 java.lang.ClassNotFoundException:org.springframework.web.context .ContextLoaderListener 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 在org.apache.catalina。 core.StandardContext.listenerStart(StandardContext.java:4149) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1057) at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina。 core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(Stan dardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun。 reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在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) 25/06/2012 5:16:28 PM org.apache.catalina.core.StandardContext listenerStart SEVERE:跳过安装应用程序监听器由于以前的错误 2012年12月6日下午5时16分28秒org.apache.catalina.core.StandardContext开始 严重:错误listenerStart 25/06/2012 5:16:28 PM org .apache.catalina.core.StandardContext开始 SEVERE:上下文[/ TestSpring25Web]启动失败,由于以前的错误

任何人都可以帮助一些想法?谢谢!

干杯,亚历克斯

+1

查看您的控制台和所有Tomcat'/ logs'。必须在某处导致“* previous error(s)*”的错误 –

+0

将错误/例外置于您的问题中(您可以随时编辑它) –

+2

如果这是一个新项目,请立即停止。使用Spring 3.1和Tomcat 6.你的版本正在被淘汰。 –

回答

0

根据错误你缺少类路径中的春瓶,最简单的解决办法是复制春天罐子(包含类org.springframework.web.context的一个.ContextLoaderListener)到tomcat下的lib文件夹。

+0

你是认真的吗?!你看过这个问题吗?有一个明确的行:“严重:配置类org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener”的应用程序侦听器时出错,并将jar放入lib中不是总是一个糟糕的主意,这真的取决于你需要什么。你能解释为什么你低估了这个吗?这家伙接受了答案,意思是它的工作! – Tomer

+0

你是对的CNFE ...删除我的评论。我再也不能高兴了。对不起:( –

+0

AFAIK,你可以通过再次点击撤消表决权。 – Tomer

0

您使用的是Maven吗?完全可能的是,您在不同的Spring人工制品之间出现版本不匹配,其中一个调用的是您所依赖的其他人工制品的较旧依赖关系。之前我已经在ClassNotFoundException中看到过这个清单。

  1. 确保你已经得到了所有你应该有依赖关系的类路径(可能spring-web
  2. 确保没有依赖版本冲突
  3. 认真考虑试图用一切可能的话的较新版本!
相关问题