2012-06-25 40 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. 認真考慮試圖用一切可能的話的較新版本!
相關問題