1 回答

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果您需要更多信息,請(qǐng)告訴我。
在詢問(wèn)有關(guān) Tomcat 的問(wèn)題時(shí),指定您使用的確切版本(xyz)很重要。希望你的Tomcat 7.0.z版本不是n年。
當(dāng) Tomcat 嘗試啟動(dòng)我的 webapp 時(shí),它導(dǎo)致我的 webapp 失敗。
錯(cuò)誤消息說(shuō)它是由方法“org.apache.catalina.deploy.NamingResources cleanUp”記錄的。正如您從名稱中猜到的那樣,它不會(huì)在啟動(dòng)時(shí)發(fā)生,而是在關(guān)閉時(shí)發(fā)生。
日志文件和另一個(gè)日志文件(特別是 localhost.log)中的其他消息是什么?
我的猜測(cè)是其他原因阻止它啟動(dòng),而清理錯(cuò)誤只是其后果。
靜態(tài)記錄器日志
為什么是“靜態(tài)”??jī)H當(dāng)您有此類的多個(gè)實(shí)例(并希望跨實(shí)例共享記錄器)時(shí),這才有意義。如果只有一個(gè)實(shí)例(一個(gè) Servlet,一個(gè) Controller 通常作為單個(gè)實(shí)例存在),使用實(shí)例字段更有意義。
一般注意事項(xiàng):
常見(jiàn)故障排除技巧。您可以嘗試在 NamingResources 類中放置一個(gè)斷點(diǎn)并查看它是如何啟動(dòng)的。您可以嘗試在 StandardContext 類中放置一個(gè)斷點(diǎn)并查看它是如何啟動(dòng)的。JNDI 在 StandardContext 啟動(dòng)序列的某個(gè)步驟初始化。
您可以嘗試簡(jiǎn)化 Log4J 的配置。(以確保它不在其配置中使用 JNDI)。
通常通過(guò)創(chuàng)建 InitialContext 并通過(guò)它進(jìn)行查找來(lái)訪問(wèn) JNDI。InitialContext 根據(jù)它在其中運(yùn)行的 Web 應(yīng)用程序選擇 JNDI 樹(shù)。這是通過(guò)查看當(dāng)前線程(又名 TCCL)的 Thread.getContextClassLoader() 來(lái)完成的。如果 TCCL 錯(cuò)誤,JNDI 將無(wú)法訪問(wèn)。( NamingResources 類是一個(gè)例外,因?yàn)樗梢栽L問(wèn) Tomcat 內(nèi)部結(jié)構(gòu))。
添加回答
舉報(bào)