Java Web Project引用另一个Java项目

Joã*_*lva 9 java eclipse java-ee

我有一个Java Project,我正在使用Dynamic Web ProjectEclipse 创建一个Web界面.Web项目由一个servlet和两个组成JSP.像这样的东西:

/JavaApplication
  /src
  /lib
  /resources
/WebApplication
  /src
    /Servlet.java
  /WebContent
    /WEB-INF
    index.jsp
    other.jsp
Run Code Online (Sandbox Code Playgroud)

现在,我需要引用JavaApplicationWebApplication,为了使用它的类来处理Web请求.实现这一目标的最佳方法是什么?我的想法是创建.jarJavaApplication,包含所有.class文件,/resources以及/libs.通过这种方式,我可以在Web应用程序中包含.jar,我可以拥有一个.war包含整个应用程序的文件.

你怎么看?这个问题通常如何解决?

注意:我不想将Java项目转换为Web项目.

Bal*_*usC 16

在Eclipse项目属性中,将项目添加到Java EE模块依赖项(Eclipse 3.5或更早版本)

Java EE模块依赖项

或项目属性中的部署程序集(Eclipse 3.6或更高版本)条目.

部署大会

这样Eclipse就会注意做正确的事情来创建一个WAR(它将以此结束/WEB-INF/lib).不需要其他配置,甚至不需要在Build Path中进行一些调整.

  • 快速说明:对于Eclipse 3.6及更高版本,"Java EE Module Dependencies"重命名为"Deployment Assembly" (3认同)

Pas*_*ent 15

在Eclipse下,您可以为给定项目声明项目引用,即您的案例中的Web应用程序.为此,右键单击Web应用程序项目,然后转到" 属性">"项目引用"并选择JavaApplication项目.这应该允许您从JavaApplication项目中调用代码WebApplication而无需构建WAR.这是一个发展的解决方案.

对于标准部署(在IDE之外),您确实应该创建标准WAR.为此,您必须将您的包装JavaApplication作为JAR 打包,包括.class文件和文件,/resources包括它所依赖的库(JAR下/lib).这些依赖关系实际上会WEB-INF/lib在WAR 的目录中,在你的JAR旁边JavaApplication.这些步骤通常使用AntMaven等工具自动完成.

  • 这个建议是否有效,我正在尝试它,但在运行时继续获取java.lang.NoClassDefFoundError,尽管我的servlet中的所有内容都正确编译. (2认同)