2010-06-17 63 views
7

我下載了hibernate的工作示例(使用maven),並將它安裝在我的tomcat上,它工作。然後,我在MyEclipse中創建了一個新的Web項目,添加了hibernate支持,並將所有源文件(無jar)移動到這個新項目中,並在需要的地方固定包/路徑。我的servlet正確響應,但是當我在web.xml中添加「監聽器」時, tomcat在啓動時返回錯誤「Error ListenerStart」,並且我的應用程序無法啓動。
我仔細檢查了所有包,路徑和類,它們看起來不錯。錯誤消息也沒有告訴任何東西更多,除了這兩個詞 下面是完整的tomcat的啓動日誌:Tomcat /休眠問題「SEVERE:Error listenerStart」

17-Jun-2010 12:13:37 PM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8810 
17-Jun-2010 12:13:37 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 293 ms 
17-Jun-2010 12:13:37 PM org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
17-Jun-2010 12:13:37 PM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20 
17-Jun-2010 12:13:37 PM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
17-Jun-2010 12:13:37 PM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/addressbook] startup failed due to previous errors 
17-Jun-2010 12:13:37 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8810 
17-Jun-2010 12:13:37 PM org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
17-Jun-2010 12:13:37 PM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/22 config=null 
17-Jun-2010 12:13:37 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 446 ms 

我的web.xml文件是:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <listener> 
     <listener-class>addressbook.util.SessionFactoryInitializer</listener-class> 
    </listener> 

    <filter> 
     <filter-name>Session Interceptor</filter-name> 
     <filter-class>addressbook.util.SessionInterceptor</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>Session Interceptor</filter-name> 
     <servlet-name>Country Manager</servlet-name> 
    </filter-mapping> 

    <servlet> 
     <servlet-name>Country Manager</servlet-name> 
     <servlet-class>addressbook.managers.CountryManagerServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Country Manager</servlet-name> 
     <url-pattern>/countrymanager</url-pattern> 
    </servlet-mapping> 

</web-app> 

有人可以要麼幫我找出我是什麼做錯了?或者指向一些資源,我可以得到我的問題的一些精確解決方案?

+0

問題修正: web.xml中過濾器和servlet的順序錯誤。我在過濾器之前移動了servlet,並且問題得到解決。 – WSK 2010-06-17 17:00:06

+1

歡迎將其發佈爲答案並接受它。 – 2010-06-17 20:09:50

+3

在2.4版本和之前的版本中,web.xml中元素的排序確實非常驚人。在2.5中,元素的排序不太嚴格。順便說一下,tomcat將webapp特定的錯誤記錄到另一個以主機名作爲文件名前綴的日誌文件中。 – BalusC 2010-06-17 22:19:19

回答

2

web.xml中過濾器和servlet的順序錯誤。我在過濾器之前移動了servlet,問題得到解決