簡體   English   中英

在Tomcat 5.5中部署web-app時如何解決Error listenerStart?

[英]How to resolve Error listenerStart when deploying web-app in Tomcat 5.5?

我已經部署了一個Apache Wicket Web應用程序,它將Spring和Hibernate用於我的Tomcat 5.5實例。 當我導航到Tomcat Manager界面時,我發現我部署的Web應用程序沒有運行。 當我按下“開始”時,我收到以下錯誤消息; “失敗 - 在上下文路徑/意大利面條中的應用程序無法啟動”。

我的catalina.log包含以下內容:

Apr 15, 2010 1:51:22 AM org.apache.catalina.loader.WebappClassLoader validateJarFile  
INFO: validateJarFile(/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/jsp-api-6.0.16.jar)   - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/jsp/JspPage.class  
Apr 15, 2010 1:51:22 AM org.apache.catalina.loader.WebappClassLoader validateJarFile  
INFO: validateJarFile(/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/servlet-api-6.0.16.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class  
Apr 15, 2010 1:51:24 AM org.apache.catalina.core.StandardContext start  
SEVERE: Error listenerStart  
Apr 15, 2010 1:51:24 AM org.apache.catalina.core.StandardContext start  
SEVERE: Context [/spaghetti] startup failed due to previous errors

摘自web.xml:

<listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

任何幫助是極大的贊賞。

我發現遵循這些說明有助於找到問題所在。 對我來說,那是殺手,不知道什么被打破了。

http://mythinkpond.wordpress.com/2011/07/01/tomcat-6-infamous-severe-error-listenerstart-message-how-to-debug-this-error/

引用鏈接

在Tomcat 6或更高版本中,默認記錄器是“java.util.logging”記錄器而不是Log4J。 因此,如果您嘗試添加“log4j.properties”文件 - 這將無法正常工作。 Java utils記錄器查找名為“logging.properties”的文件,如下所述: http//tomcat.apache.org/tomcat-6.0-doc/logging.html

因此,要獲得調試詳細信息,請在WAR的“/ WEB-INF / classes”文件夾下創建一個“logging.properties”文件,然后就可以了。

現在,當您重新啟動Tomcat時,您將看到所有調試完全榮耀!

示例logging.properties文件:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/jsp-api-6.0.16.jar
/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/servlet-api-6.0.16.jar

應該在任何特定的服務器庫/WEB-INF/lib 將它們留在appserver自己的庫中。 它只會導致類路徑中的沖突。 刪除/WEB-INF/lib的所有特定於appserver的庫(如果已放置其中任何一個,還可以在JRE/libJRE/lib/ext )。

特定於appserver的庫包含在webapp庫中的一個常見原因是,啟動者認為這是修復javax.servlet類不可解析的編譯錯誤的正確方法。 將它們放在webapp的庫中是錯誤的解決方案。 您應該在編譯期間在類路徑中引用它們,即javac -cp /path/to/server/lib/servlet.jar等等,或者如果您使用的是IDE,則應該將服務器集成到IDE中並將其關聯與服務器的Web項目。 然后,IDE將自動在webapp項目的類路徑( buildpath )中獲取特定於服務器的庫。

當我編譯app的JDK與tomcat JVM不同時,我遇到了這個錯誤。 我驗證了Tomcat管理器運行的是jvm 1.6.0,但該應用程序是在java 1.7.0下編譯的。

升級Java並在我們的啟動腳本(/etc/init.d/tomcat)中更改JAVA_HOME后,錯誤就消失了。

Tom Saleeba提供的回答非常有幫助。 今天我也遇到了同樣的錯誤

2015年4月28日下午7:53:27 org.apache.catalina.core.StandardContext startInternal SEVERE:錯誤listenerStart

我按照建議並添加了logging.properties文件。 以下是我失敗的原因:

java.lang.IllegalStateException:未擴展WAR文件時,無法設置Web應用程序根系統屬性

問題的根本原因是我添加到web.xml中的監聽器(Log4jConfigListener)。 並且根據鏈接SEVERE:Exception org.springframework.web.util.Log4jConfigListener ,無法在未展開的WAR中添加此偵聽器。

有人知道這是在OpenShift JBoss設備上發生的,這可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM