我有一个Vaadin项目和外部的Java项目。 我想从Vaadin外部项目调用代码。 我有两个项目在Eclipse进口和Vaadin项目引用外部一个在Eclipse Java Build Path
。 Eclipse的报告没有错误,但是当我部署Vaadin应用到Tomcat(使用Project > Run As > Run on Server
),我收到以下错误:
HTTP Status 500 - java.lang.NoClassDefFoundError: com/example/MyClass
需要注意的是Vaadin项目是基于常春藤,没有Maven的。
我试图寻找周围没有成功Vaadin外部项目的依赖。 我会感谢如何从Vaadin使用外部项目的代码的任何建议。
解决的办法是外部项目添加到Eclipse中的Tomcat实例的类路径。 选择
Run > Run Configurations > Apache Tomcat > (your Tomcat instance) > Classpath
点击Add Projects...
并添加所需的项目。
这将为开发工作。 对于部署,外部项目必须打包为一个库.jar文件和手动复制(或使用编译脚本),以WEB-INF/lib
的Vaadin项目目录(见这个答案在Vaadin论坛)。
这将直接在部署的依赖另一种解决方案WEB-INF/lib
是:
-您的外部项目添加到Project / Java Build Path / Projects
-添加外部项目库(假设为Maven的在这里)的Project / Java Build Path / Libraries
点击Add Variable / M2_REPO
并点击Extend
选择合适的库。
如果你依赖于许多图书馆这一部分可能是痛苦的。
-添加在你的外部项目和Java构建路径条目Project / Deployment Assembly
面板。
- 重新启动Tomcat实例。
Check the content of the
WEB-INF/lib
directory under:
eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\your_ project\WEB-INF\lib
把你的外部项目并将其导出为一个罐子。 然后将您的新的jar和任何依赖到你vaadin项目的WEB-INF / lib目录下。 这将在部署工作,以及开发环境。