系統內容是centos5.3 + jdk6 + tomcat6.0.20 + Struts2.1.6 + Spring2.5.6。Struts2使用了 struts2-convention-plugin-2.1.6.jar 和 struts2-spring-plugin-2.1.6.jar兩個外掛程式。
早上的時候,用戶端部門有人問某個服務無法訪問了。檢查了日誌,發現tomcat啟動的時候,報org.apache.catalina.core.StandardContext start , Error filterStart 錯誤。結果導致該網站無法啟動。
首先懷疑是配置錯誤,可是檢查了所有配置,lib,classs,都沒有問題了,同樣配置的另外一個網站,就很正常。
還可能是什麼地方的錯誤呢,經過替換的方式,檢查是struts2啟動的問題,可是配置完全沒問題的,這些配置用了很久了。
tomcat的日誌太簡單了,實在看不出哪的問題。從tomcat的文檔,其中有Logging替換的說明(http://tomcat.apache.org/tomcat-6.0-doc/logging.html
)。
於是做了下配置: log4j、comms-logging 兩個jar 放到 tomcat的 lib目錄中,在lib目錄中編寫一個log4j.properties設定檔。 然後從tomcat6的官方網站(http://labs.xiaonei.com:8081/apache-mirror/tomcat/tomcat-6/v6.0.20/bin/extras/
),下載 tomcat-juli-adapters.jar 到 lib目錄, 下載 tomcat-juli.jar 替換bin目錄下的同名檔案。
重啟之後,查看了下產生的詳細的日誌,簡直要吐血了。原來是系統使用了convention外掛程式,目的是讓它從/WEB-INF/jsp目錄下自動找jsp檔案的url地址。上周末在修改檔案的時候,為了做個備份,把一個jsp檔案備份
為.org了,然後convention就因為找不到了.org的對應關係,啟動的時候報錯!!