2017-03-28 88 views
0

我正在使用Tomcat 8.0.41,並且遇到了一直無法解決的問題。當我啓動Tomcat時,即使沒有部署Web應用程序,我也會在日誌中收到以下異常消息。啓動時的Tomcat異常:java.lang.ClassNotFoundException:javax.faces.webapp.FacesServlet

28-Mar-2017 09:03:45.659 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log Marking servlet Faces Servlet as unavailable 
28-Mar-2017 09:03:45.659 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.loadOnStartup Servlet [Faces Servlet] in web application [] threw load() exception 
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:518) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:499) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1027) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5038) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5348) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:587) 
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1798) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

所有的我已經能夠找到StackOverflow上的問題說,Web應用程序需要包括正確的依賴,但奇怪的是,該錯誤仍然顯示時,我有零部署的Web應用程序。我不記得我剛開始使用tomcat時顯示的這個錯誤,但我不記得它何時開始。我寧願不將jar添加到tomcat/lib文件夾,因爲我使用的Web應用程序具有適當的依賴關係。

這可能是什麼原因造成的?

+1

哇,這是離奇的。既然你沒有部署webapps ......也許試着停止tomcat,清除「work」目錄,然後重新啓動tomcat。 – Code4aliving

+1

另外,請在「webapps」目錄下看看真正嘗試部署的內容。我只是意識到,你可能一直在看tomcat管理器的東西,而不是看文件系統... – Code4aliving

+0

@BradBales感謝您的幫助。我清理了工作並重新啓動,但這並沒有幫助。 webapps目錄完全是空的。 – lucasvw

回答

1

我發現問題的根源,但我不知道它爲什麼會導致它。在{Catalina基}文件\的conf \卡塔利娜\本地主機\的ROOT.xml已改變爲:

<?xml version="1.0" encoding="UTF-8"?> 
<Context docBase="SOME LONG INVALID FILE PATH" path=""/> 

的「有些長文件路徑無效」是我早先在去除JEE教程目錄周。我編輯ROOT.xml文件到

<?xml version="1.0" encoding="UTF-8"?> 
<Context docBase="" path=""/> 

現在Tomcat開始時沒有投訴。歡迎任何關於爲何導致上述問題的解釋。