2011-01-06 24 views
4

最近,我開始得到以下 重度:Servlet.service()的servlet和jsp拋出異常 拋出java.lang.ClassNotFoundException:org.apache.jsp.login_jspEclipse的Tomcat的JSP類文件零星找不到

它發生了一陣子。 假期前一切都很好。但是現在我已經開始體驗這個例外。

我認爲這個問題涉及服務器重新啓動和發佈參數。 .metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost

有時當我打刷新瀏覽器,我:基於是否我保存JSP或Java文件中的Eclipse有時吹東西拿走此文件夾中[啓動,重複啓動Synchonized] ...等... 會看到特定的_jsp.class文件出現。但有時我會得到異常,並注意到jsp_class缺失,通常是WEB-INF/view文件。

我不認爲這有什麼關係不能夠comile jsp的,因爲沒有任何錯誤 - 我的JSP不包含任何<%%>只JSTL/EL

編輯: 我遵循BalusC的建議刪除項目(取消選中永久刪除文件btw)和導入。我爲原始和「複製」項目做了這個,但我現在只導入了原始項目。這似乎是行爲舉止,但現在說這是一個錯誤,因爲這是一個錯誤。

我的確得到了follwoing編輯後幾次並保存一個.java文件,但不能重複它十幾現在嘗試後:

Jan 6, 2011 6:54:53 PM org.apache.catalina.core.StandardContext reload 
INFO: Reloading this Context has started 
Jan 6, 2011 6:54:53 PM org.apache.catalina.session.StandardManager doUnload 
SEVERE: IOException while saving persisted sessions: java.io.FileNotFoundException: 
C:\jrozycki\MyDocuments\Development\Eclipse\STK\.metadata\.plugins\org.eclipse.wst.server.core\tmp1  
\work\Catalina\localhost\_\SESSIONS.ser (The system cannot find the path specified) 
java.io.FileNotFoundException:  
C:\jrozycki\MyDocuments\Development\Eclipse\STK\.metadata\.plugins\org.eclipse.wst.server.core\tmp1 
\work\Catalina\localhost\_\SESSIONS.ser (The system cannot find the path specified) 

回答

0

嗯,這就是矩陣中的毛刺。 Eclipse很複雜。它也出現在我和我的所有同事以及其他任何人身上。

您可以嘗試的最好方法是在Eclipse中右鍵單擊正在運行的服務器實例,然後選擇Clean。如果這沒有幫助,那麼之後重新啓動服務器。如果這甚至沒有幫助,那麼關閉/打開項目,清理服務器並重新啓動它。


更新按照註釋:

我已經試過了所有的短,新鮮workspce開始的。它在項目查看器中複製粘貼項目後立即開始,我希望將項目用於新項目的開始。這樣做不好嗎?

包括.metadata文件夾等?我認爲這確實是罪魁禍首。如果它由不同的Eclipse版本/環境生成,它可能會發生嚴重衝突。刪除項目,然後選擇文件>導入>常規>現有項目到工作區,然後指向項目的根目錄。

+0

我已經嘗試過所有的短缺開始與新鮮workspce。它在項目查看器中複製粘貼項目後立即開始,我希望將項目用於新項目的開始。這樣做不好嗎? – jeff 2011-01-06 23:28:18

+0

查看答案更新。 – BalusC 2011-01-06 23:34:26

+0

我相信如此。在項目查看器中,我突出顯示該項目,點擊Control-C,然後點擊Control-V。 Eclipse第一次啓動服務器時抱怨說,因爲原始項目的上下文根目錄設置爲/它不喜歡有兩個具有相同上下文根的項目。我會試試你的建議。 – jeff 2011-01-06 23:38:11

0

爲防萬一還有人讀這個,這個問題第一次打我。 在Eclipse 4.5中,似乎只適用於我的是右鍵單擊服務器選項卡中的服務器,然後單擊「添加和刪除...」,刪除受影響的項目(清除生成的* _jsp.class文件工作區)並將其添加回來。