1. 程式人生 > >Tomcat部署JFinal專案後啟動報錯

Tomcat部署JFinal專案後啟動報錯

之前搭了一個Jetty+Maven的JFinal專案,IDE為MyEclipse,成功實現了專案內相應的邏輯業務。

最近有要求將專案用Tomcat啟動,一開始認為沒什麼問題只是換個容器,還有就是要像官方文件說的把maven新增依賴中的jetty-server給去除,想不到在Tomcat部署JFinal並啟動Tomcat時控制檯報出如下錯誤:

嚴重: Exception starting filter [JfinalFilter]
java.lang.ClassNotFoundException: com.jfinal.core.JFinalFilter
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
	at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:546)
	at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:527)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:264)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4637)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5282)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)

這個過濾器沒被找到,所以報了classnotfound這個異常,JFinalFilter實際上是JFinal的核心jar包自帶的過濾器,所以只可能是這個jar包在釋出的時候沒有被打包。

既然分析出問題,那麼後續就會很方便解決。

右擊專案---properties---MyEclipse---Deployment Assemby,然後點選右邊的Add,將Maven所新增的依賴加入進來。




點選finish---apply---OK,重新部署一下專案,重啟Tomcat,問題解決。