尝试登录会生成java.lang.NoClassDefFoundError和java.lang.ClassNotFoundException错误

尝试登录会生成java.lang.NoClassDefFoundError和java.lang.ClassNotFoundException错误,java,eclipse,error-handling,noclassdeffounderror,classnotfoundexception,Java,Eclipse,Error Handling,Noclassdeffounderror,Classnotfoundexception,这是我的设想。我有一个正常工作的登录表单。我已尝试安装ESAPI以保护表单。 这样,现在当我尝试登录时,会在浏览器中生成以下消息: 我正在使用EclipseJavaEEIDEIndigo服务版本1 我研究了项目的属性,并将esapi-2.0.1.jar文件添加到库中 这是所有需要的,但我收到了上面的信息。为了进行故障排除,我做了以下工作: 此外,我已经深入了解并手动将源附件和本机库位置指向esapi zip文件附带的src和lib目录 我将项目配置为使用JDK,因为它是使用JRE作为已安装的JR

这是我的设想。我有一个正常工作的登录表单。我已尝试安装ESAPI以保护表单。 这样,现在当我尝试登录时,会在浏览器中生成以下消息:

我正在使用EclipseJavaEEIDEIndigo服务版本1

我研究了项目的属性,并将esapi-2.0.1.jar文件添加到库中

这是所有需要的,但我收到了上面的信息。为了进行故障排除,我做了以下工作:

此外,我已经深入了解并手动将源附件和本机库位置指向esapi zip文件附带的src和lib目录

我将项目配置为使用JDK,因为它是使用JRE作为已安装的JRE创建的。 作者:

右键单击项目名称。 选择属性、Java构建路径 单击选项卡库。 单击添加库,选择JRE系统库,然后单击下一步 选择底部项目:Workspace default JRE jdk1.x.x。等 请注意,它现在是一个JDK而不是JRE! 单击“完成” 现在删除JRE库,这样您就只有JDK库了。 例如:JRE系统库[JavaSE-1.6] 单击“确定” 接下来,我通过执行以下操作将Eclipse配置为使用JDK而不是JRE:

窗口->首选项->Java->已安装的JRE 单击添加、标准虚拟机、下一步 对于JRE主页,请单击目录 找到您的JDK目录。。。 示例:C:\java\jdk1.6.0\U 24 单击“完成” 接下来检查列出的JDK和JRE。 单击“确定” 为了确保.properties文件被识别,我还添加了

-Dorg.owasp.esapi.resources="c:\.esapi"
默认的VM参数

我还向此处列出的JRE系统库添加了相同的esapi-2.0.1.jar文件

最后,我在project Explorer中进入我的项目,从Libraries>JRE System Library>esapi-2.0.1.jar>org.owasp.esapi>esapi.class>esapi开始深入研究,它说它现在有了源代码,所以我浏览到了提取esapi zip文件的同一个src文件夹


通过所有这些步骤,错误保持不变

web应用程序的类路径由/web-INF/classes、/web-INF/lib中的所有JAR和web服务器本身的类路径构成。添加到eclipse项目的类路径中的库不随应用程序一起部署。因此,如果不将它们放在tomcat的类路径中,那么在运行web应用程序时它们就不会在类路径中


在这种情况下,您当然应该从eclipse构建路径中删除该库,并将jar放在WEB-INF/lib中。Eclipse将使其自动可用于协作,并将自动与web应用一起部署,并在运行时处于其类路径中。

web应用的类路径由/web-INF/classes、/web-INF/lib中的所有JAR以及web服务器本身的类路径构成,在本例中为tomcat。添加到eclipse项目的类路径中的库不随应用程序一起部署。因此,如果不将它们放在tomcat的类路径中,那么在运行web应用程序时它们就不会在类路径中


在这种情况下,您当然应该从eclipse构建路径中删除该库,并将jar放在WEB-INF/lib中。Eclipse将使其自动可用于协同编译,并将自动与web应用一起部署,并在运行时处于其类路径中。

可能的副本也适用于我。我正在使用JBoss7.1。谢谢:也为我工作。我正在使用JBoss7.1。谢谢:
-Dorg.owasp.esapi.resources="c:\.esapi"