我有几个使用servlet的J2EE项目,每个项目都扩展自一个处理主要doGet和doPost方法的基类,并在子类上调用更具体的方法。我希望将其移动到每个其他项目都可以引用的JAR中,而不是将该基类作为每个WAR文件中的类。
我正在使用Eclipse。因此,我创建了一个新的Java项目,并将基类移动到那里。它抱怨没有引用servlet-api.jar,所以我在那里添加了它。然后其他项目抱怨没有引用该新项目,因此添加了这些引用。
现在,没有更多的抱怨,但是当我运行项目时(通过打开servlet类并选择 Run As ),它不会从其他项目中导出类,而Tomcat会抛出一个尝试实例化未知类的子类时出现异常。
如何告诉eclipse导出servlet项目本身以及它引用的其他java项目?
答案 0 :(得分:4)
我正在使用Eclipse。因此,我创建了一个新的Java项目,并将基类移动到那里。它抱怨没有引用servlet-api.jar,所以我在那里添加了它。
确保您通过 Java Build Path >添加了它图书馆> 添加库> 服务器运行时> [选择有问题的服务器] (因此不会复制或导入,否则类路径可能会与实际使用的服务器冲突)。
然后其他项目抱怨没有引用该新项目,因此添加了这些引用。
我不确定我是否理解这里的根本原因。
现在,没有更多的抱怨了,但是当我运行项目时(通过打开servlet类并选择Run As),它不会从其他项目中导出类,而Tomcat在尝试实例化子类时会抛出异常一个未知的阶级。
您还需要配置已部署的Web项目以导出项目引用。转到项目属性中的 Java EE Module Dependencies ,并勾选要作为依赖项导出的项目。
答案 1 :(得分:0)
检查运行时配置的CLASSPATH设置。而不是依赖于“Run As ...”继续为servlet创建一个显式的运行时配置。这样,您可以确保在正在运行的项目中包含任何依赖类。