Java Struts基本类加载问题

Java Struts基本类加载问题,java,eclipse,struts,Java,Eclipse,Struts,我有一个基本的Struts应用程序,目前只有一个操作-登录。我确认我正确设置了映射,然后想在映射后面添加一个实际操作(即验证凭据的东西) 我创建了一个新项目,并在其中放入了身份验证类,然后将该项目添加到Web项目的生成路径中。但是,现在当我尝试调用我的操作时,出现以下错误: java.lang.ClassNotFoundException: com.mysite.data.managers.Authentication org.apache.catalina.loader.WebappC

我有一个基本的Struts应用程序,目前只有一个操作-登录。我确认我正确设置了映射,然后想在映射后面添加一个实际操作(即验证凭据的东西)

我创建了一个新项目,并在其中放入了身份验证类,然后将该项目添加到Web项目的生成路径中。但是,现在当我尝试调用我的操作时,出现以下错误:

java.lang.ClassNotFoundException: com.mysite.data.managers.Authentication
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    com.mysite.struts.actions.LoginAction.execute(LoginAction.java:31)
从其他评论和之前的文章中,我了解到,虽然我的类可以编译(它可以编译),但任何被引用的类都必须位于WEB-INF/lib中(可能位于jar文件中)

当被引用的类是我的应用程序的一部分时(即我作为应用程序的一部分编写的东西,尽管在不同的项目中),如果不将项目导出为jar并将该jar复制到WEB-INF/lib,是否就无法通过构建路径引用项目(这意味着每当我对这些项目进行更改时,我都需要重新打包这些类并再次导出)


这个问题的后续问题是关于链接项目。如果项目a中有对项目B中某个类的引用,那么我是否需要在WEB-INF/lib中包含这两个项目?

这似乎更像是一个Eclipse问题,而不是其他问题。您没有提到您正在使用的Eclipse版本或应用程序服务器,但是让我们看看这些是否有用

在项目的属性中,检查部署程序集页面。源列表是否包括源文件编译到的文件夹?对于Eclipse动态Web项目,该路径通常是
Web-INF/classes
。您的Struts JAR也在其中列出了吗


对于您的后续问题,您还可以将其他项目包括在该列表中。我假设这将包括该项目“导出”的任何内容在其构建路径设置中。

当一个项目引用另一个项目时,被引用项目的库应自动包含在web应用程序的部署中。您不需要在打包的jar文件中包含自己的类;如果项目设置正确,它们也将自动部署/引用。如下所述,我未在部署程序集中添加引用的项目。我没有意识到,虽然生成路径将决定类是否将编译,但对于web应用,这些项目也必须包含在部署程序集中。谢谢!忘记了部署程序集,只是尝试使用生成路径。我觉得很有趣ng,但是,为了让它正常运行,我必须添加所有被引用的项目(包括被引用项目引用的项目)到Web项目的部署程序集。实际上,更改用户库似乎会导致将其从部署程序集中删除,并要求我重新添加它,这一事实也让我感到痛心。谢谢您的提醒。