0

我正在尝试在 Eclipse (EE Helios SR 1) 中运行多模块 Maven Web 应用程序。在 NetBeans 中,只需单击运行按钮。但在这里它可能有点复杂。

我已将 Tomcat 7.0.26 添加为项目的 war 模块的服务器。当我尝试运行该应用程序时,在Servers我看到的窗口部分中Apache Tomcat v.7.0.26 at localhost [Started, Synchronized],但浏览器没有反应。应用运行时系统浏览器是否需要显示页面?

当服务器启动时,我试图移动到localhost:8080and localhost:8080/welcome.html(第二个应该由应用程序处理),但我两次都收到 404 错误。我也没有在apache-tomcat-7.0.26/webapps/. Eclipse 在运行应用程序时是否应该将项目放在那里?如果有人告诉我我在这里缺少什么,我将不胜感激。

4

3 回答 3

1

如果未指定,tomcat 与 eclipse 的集成默认将 war 部署到 .metadata 中的特定文件夹,在我的情况下类似于: ~/workspace/<my_project_workspace_name>/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/

Every war are then unzipped to a folder. If your maven pom.xml you'll find a

<build>
    <finalName>myapp</finalName>
</build>

Then it'll deployed to tomcat as :

localhost:8080/myapp/welcome.html
于 2012-04-30T12:24:11.310 回答
0

Maven 项目与具有 Web 应用程序方面的项目不同,您不能直接将 Maven 应用程序作为 Web 应用程序运行,因为文件夹结构不同。为了直接从 Eclipse 运行您的应用程序,请尝试将 Web 应用程序性质添加到您的 maven 项目中[涉及修改 .project 和 .classpath 文件以及添加一些其他文件的复杂修改]。我建议相应地修改您的 pom.xml 文件

于 2012-04-30T12:08:23.907 回答
0

在 Eclipse 中运行 Web 服务器时,我有很多糟糕的经历。大多数时候,这与不可靠的类/资源重新加载有关。

我的解决方案是在一个新模块中将Jetty添加到我的应用程序中(请参阅Embedding Jetty)。这基本上将我的 Web 应用程序变成了 Java 应用程序,避免了大部分问题。它还允许我在应用程序重新加载时指定一个过滤器(用 Java 编写)。

这解决了类重新加载的所有问题(类和资源永远不会复制到任何地方;它们是从 Eclipse 的 bin 文件夹中加载的),启动速度更快(我们将启动时间从几分钟缩短到 15 秒)并且可靠。

于 2012-04-30T12:14:28.583 回答