Struts基本类加载问题

时间:2011-09-13 14:44:22

标签: java eclipse struts

我有一个基本的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中包含这两个项目?

1 个答案:

答案 0 :(得分:2)

这似乎更像是一个Eclipse问题而不是其他问题。您没有提到您正在使用的Eclipse版本或哪个Application Server,但让我们看看是否有任何帮助。

在Project的属性中,选中Deployment Assembly页面。源列表是否包含源文件编译到的文件夹?对于Eclipse Dynamic Web Project,该路径通常为WEB-INF/classes。你的Struts罐子也在那里列出了吗?

对于您的后续问题,您还可以在该列表中包含其他项目。我假设它会在Build Path设置中选择Project“export”。