bestlong 怕失憶論壇's Archiver

bestlong 發表於 2007-5-29 15:45

Tomcat 出現錯誤 java.io.FileNotFoundException: \tomcat\logs\log4j_TAD.log

安裝完 Openbravo 後,重新啟動 Tomcat 會有以下錯誤訊息:

[code]
2007/5/29 下午 03:25:04 org.apache.catalina.loader.WebappClassLoader validateJarFile
資訊: validateJarFile(C:\apache-tomcat-5.5.23\webapps\openbravo\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: \tomcat\logs\log4j_TAD.log (系統找不到指定的路徑。)
        at java.io.FileOutputStream.openAppend(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
        at org.apache.log4j.FileAppender.setFile(FileAppender.java:272)
        at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:156)
        at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:151)
        at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247)
        at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:123)
        at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:87)
        at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:645)
        at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:603)
        at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:500)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:406)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:307)
        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:315)
        at org.openbravo.base.HttpBaseServlet.init(Unknown Source)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:448)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
[/code]
這是因為 log4j 的設定沒有處理好所以對映不到 Tomcat 的安裝路徑的,所以需要手工調整一下。
從錯誤訊息中可以看到我的 Tomcat 安裝路徑是 C:\apache-tomcat-5.5.23\
而 log4j 需要使用到的路徑卻是 \tomcat\logs\log4j_TAD.log
當然就會出問題了
解決方式有兩種:

1. 可以改變 Tomcat 的路徑名稱 C:\apache-tomcat-5.5.23\ 變成 C:\tomcat\ 不過可能會影響到其他的服務。

2. 調整 log4j 的設定,以我安裝的目錄來說,編輯 C:\apache-tomcat-5.5.23\webapps\openbravo\WEB-INF\log4j.lcf 其中有一段設定為
[code]
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=/tomcat/logs/log4j_TAD.log
log4j.appender.R.MaxFileSize=10000KB
[/code]
請修改成
[code]
log4j.appender.R=org.apache.log4j.RollingFileAppender
#log4j.appender.R.File=/tomcat/logs/log4j_TAD.log
log4j.appender.R.File=/apache-tomcat-5.5.23/logs/log4j_TAD.log
log4j.appender.R.MaxFileSize=10000KB
[/code]
這樣就解決了。

bestlong 發表於 2007-5-29 15:56

若是有重新編譯 Openbravo 的需求,可以先去修改 C:\OpenbravoERP-2.22\AppsOpenbravo\config\log4j.lcf 的設定內容,處理的方式一樣。
這樣就可以不用在重新部署到 Tomcat 後還要再去修改設定。

而路徑 C:\OpenbravoERP-2.22\ 請依據你的 Openbravo 的實際安裝路徑調整。
頁: [1]

Powered by Discuz! X1.5 Archiver   © 2001-2010 Comsenz Inc.