2011-01-06 71 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文件工作区)并将其添加回来。