1

我在带有 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:runtomcat常规部署没有的吗?这怎么可能在我的虚拟机中没有发生?这些课程不应该都在WAR中吗?

编辑:

这是另一个提示。当我在 Ubuntu VM 中运行从 WAR 导入的项目时,无论是使用 Eclipse 中的 Jetty 还是将其添加到 webapps 文件夹中,它都可以正常工作。

只有在失败时才在 Windows 主机环境上运行它。

cmd 上抛出的具体 NoClassdefFoundErrors 如下:

Caused by: java.lang.NoClassDefFoundError: org/ow2/frascati/explorer/
api/FraSCAtiExplorer

这是主要项目的模块之一。

4

2 回答 2

0

最后通过执行以下操作解决了所有错误:

首先,我重新编译了这次在 Windows cmd 中的 Jetty 下工作的 WAR。我很抱歉,因为这一定是由于我仍然不知道的一些错误,可能从一开始就与 Windows HOST OS 共享错误的 WAR。

另一方面,通过将 Jetty 文件夹移出“Program Files”目录来解决 Eclipse。Eclipse 附带的旧 Jetty 6 适配器似乎无法识别其到服务器的路径中的空格。

于 2012-10-17T12:49:37.730 回答
0

如果您尝试在 tomcat 的 webapps 文件夹中部署您的战争,并且如果您错过了一个课程,那么您可能会错过您的 lib 文件夹中的一个 jar。它可能是一个应该由 Web 服务器提供的 jar。

我们需要知道缺少哪个类。

于 2012-10-12T12:34:36.667 回答