2012-01-19 126 views
0

我正在嘗試測試一個(我基於Spring的)WAR,我將它部署到TOMCAT_HOME/webapps/,然後啓動tomcat。一分鐘左右後,很明顯WAR沒有運行(因爲它應該消耗掉ActiveMQ隊列中的消息......而不是)。我看從控制檯和標準輸出看到:使用Tomcat進行調試

INFO: Deploying web application archive Optimizer.war 
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
23 [Thread-2] INFO org.apache.camel.spring.handler.CamelNamespaceHandler - OSGi environment not detected. 
Jan 19, 2012 10:54:20 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error listenerStart 
Jan 19, 2012 10:54:20 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom 
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [184] milliseconds. 
Jan 19, 2012 10:54:20 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/Optimizer] startup failed due to previous errors 

這裏是我的log4j.properties文件:

log4j.rootLogger=INFO 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d [%c] [%t] (%F:%L) %-5p %c %x - %m%n 
log4j.logger.org.milyn=INFO 
log4j.logger.org.exolab.castor=INFO 
log4j.logger.org.castor.core=INFO 
log4j.logger.org.apache.commons.digester=INFO 
log4j.logger.org.apache=INFO 
log4j.logger.org.springframework=INFO 
log4j.logger.com.ibatis=INFO 
log4j.logger.java.sql.Connection=INFO 
log4j.logger.java.sql.PreparedStatement=INFO 
log4j.logger.java.sql.ResultSet=INFO 
log4j.logger.java.sql.Statement=INFO 

這裏是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 
    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" 
    version="2.4"> 

    <!-- The display name of this web application --> 
    <display-name>Optimizer</display-name> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/optimizer-config.xml</param-value> 
    </context-param> 

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

對於一個我d想知道如何讓我的應用程序/ Tomcat更加冗長,以便我可以看到這裏發生了什麼(請注意,Tomcat控制檯和相應的catalina.log是唯一的因爲沒有main入口點,只有web.xml),所以我不得不在Eclipse工作臺上運行它。

我懷疑web.xml或可能是我的Spring配置文件有問題。我不介意調試我的配置文件,如果我可以在日誌/錯誤消息中獲得任何指示,以防止我的應用程序啓動。

任何想法/提示/建議,以開始弄清楚什麼是錯誤的過程是極其讚賞!提前致謝!

+0

由於之前的錯誤,上下文[/ Optimizer]啓動失敗,說你的項目優化器沒有啓動。你檢查服務器日誌嗎? – kosa

+0

「Error listenerStart」 - 嗯,唯一的監聽器是ContextLoaderListener。在此之前,我們看到關於ContextLoader的log4j錯誤消息。因此,首先要弄清楚爲什麼Spring類無法配置日誌記錄。一旦解決了,也許你會在記錄器輸出中獲得一些有用的信息。 –

回答

0

如果需要,您可以從IDE內實際運行整個應用程序,而不是從外部啓動Tomcat。然而,你會遇到這樣的問題,即你要處理你的war文件,而是從你的.class文件(編譯在你的工作區中)。此外,您還沒有測試Tomcat是否導致任何部署錯誤。

我記不起什麼是Tomcat錯誤文件,但是還有其他日誌文件可以在tomcat/log目錄中查看,並提供一些附加信息。

要在eclispe中啓動Tomcat,您需要創建一個新的Java運行時配置。 指定主類爲org.apache.catalina.startup.Bootstrap 程序參數:[-config] start 虛擬機參數:如您所見,但可能是-Xmx512m等... 工作目錄(我通常指向Tomcat/work目錄,如果內存服務)。

您還需要將Tomcat jar(在tomcat/lib和tomcat/bin中找到)添加到Bootstrap條目下的類路徑中)。

一旦你這樣做,你應該能夠在Eclipse中啓動Tomcat作爲一個Java應用程序,然後你其實可以調試一步一步的具體過程。

注:我從內存中提供此配置信息。我不記得工作區的確切路徑。

0

絕對爲春天添加日誌appender。使用appender,您可以爲特定的聽衆和appender指定其他日誌文件。看看這個論壇上發帖以獲得更多幫助: refer this link

編輯:例子 春天的appender到不同的文件:

<appender name="SpringAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="encoding" value="UTF-8"/> 
    <param name="file" value="C:/logs/Spring.log"/> 
    <param name="DatePattern" value="'.'yyyy-MM-dd" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{HH:mm:ss} %-5p %l - %m%n" /> 
    </layout> 
</appender> 

繼承人的春天記錄器/監聽器設置爲調試級別。

<logger name="org.springframework" additivity="false"> 
    <level value="debug" /> 
    <appender-ref ref="SpringAppender" /> 
</logger> 
+0

謝謝Michael!我可以將它們分別轉換爲'spring-appender.xml'和'spring-logger.xml'(分別)並將它們放在類路徑中?如果是這樣,那麼還有其他必要的配置將我的應用與這兩個文件連接起來嗎?再次感謝! – IAmYourFaja

+0

我沒有這方面的經驗,我通常在類路徑中有一個log4j.xml文件,它定義了我所有的日誌記錄需求。 –