【发布时间】:2012-10-02 01:13:11
【问题描述】:
我在带有 Ubuntu 的虚拟机中有一个子项目,我使用 Maven 编译它,然后使用 mvn jetty:run. 运行
Maven 也将其打包为战争。
所有这些都可以正常工作并且符合预期。
我正在尝试从 Windows 中的另一个 Eclipse 导入这个 WAR,所以我通过 Import -> WAR 完成了它,从而创建了一个 Web 应用程序。
我现在想从 Eclipse 运行它,所以我创建了一个新的 Jetty 服务器并以 Run on Server 运行我的应用程序,但我得到的是 Could not find the main class。
这样做的正确方法是什么?
此外,我尝试通过将应用程序放在 webapps Tomcat 目录中来部署应用程序。我可以在 Tomcat GUI 中看到它并启动 index.html,但是当我尝试访问某些服务时,它会抛出 No service was found
部署时,在 Tomcat 控制台中我可以看到运行时 NoClassDefFoundErrors。
mvn jetty:run 有什么东西是 tomcat 常规部署没有的吗?这怎么可能在我的虚拟机中没有发生?这些类不应该都在WAR中吗?
编辑:
这是另一个提示。当我在 Ubuntu VM 中运行从 WAR 导入的项目时,无论是使用 Eclipse 中的 Jetty 还是将其添加到 webapps 文件夹中,它都可以正常工作。
只有在失败时才在 Windows 主机环境上运行它。
cmd上抛出的具体NoClassdefFoundErrors如下:
Caused by: java.lang.NoClassDefFoundError: org/ow2/frascati/explorer/
api/FraSCAtiExplorer
这是主项目的模块之一。
【问题讨论】:
-
缺少哪些类?它们是来自应用程序中使用的库还是应用程序的类?
-
@Kal,它们是从主项目的库中导入的类。关键是相同的 WAR 在 VM 中工作。有什么想法吗?
标签: eclipse tomcat maven jetty war