2

我有一个 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 项目基于 Ivy,而不是 Maven。

我试过四处寻找 Vaadin 外部项目依赖项,但没有成功。对于如何使用来自 Vaadin 的外部项目代码的任何建议,我将不胜感激。

4

3 回答 3

2

解决方案是将外部项目添加到 Eclipse 中 Tomcat 实例的类路径中。选择

Run > Run Configurations > Apache Tomcat > (your Tomcat instance) > Classpath

单击Add Projects...并添加所需的项目。

这将有助于发展。对于部署,必须将外部项目作为库打包到 .jar 文件中,并手动(或使用构建脚本)复制到WEB-INF/libVaadin 项目的目录(请参阅Vaadin 论坛上的此答案)。

于 2013-05-22T07:53:36.187 回答
1

将您的依赖项直接部署WEB-INF/lib到的另一个解决方案是:

- 将你的外部项目添加到Project / Java Build Path / Projects
- 将你的外部项目库(这里假设为Maven)添加到Project / Java Build Path / Libraries
点击Add Variable / M2_REPO 并点击Extend选择正确的库。
如果您依赖许多库,这部分可能会很痛苦。- 在面板
中添加您的外部项目和 java 构建路径条目。 - 重新启动您的 Tomcat 实例。Project / Deployment Assembly

检查WEB-INF/lib目录下的内容:
eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\your_ project\WEB-INF\lib

于 2014-12-12T18:39:07.127 回答
0

获取您的外部项目并将其导出为 jar。然后将您的新 jar 和任何依赖项复制到您的 vaadin 项目的 WEB-INF/lib 目录中。这将在部署和开发环境中工作。

于 2015-02-19T06:32:03.900 回答