繁体   English   中英

在Eclipse中运行多模块Maven Web应用

[英]Running a multi-module Maven web app in Eclipse

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

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

服务器启动时,我尝试移至localhost:8080localhost:8080/welcome.html (第二个应由应用处理),但两次都出现404错误。 我也没有在apache-tomcat-7.0.26/webapps/看到新文件夹。 运行应用程序时,Eclipse是否应将项目放置在此处? 如果有人告诉我我在这里想念的东西,我将不胜感激。

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

然后将每场战争解压缩到一个文件夹中。 如果您的Maven pom.xml您会找到一个

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

然后将其部署为tomcat:

localhost:8080/myapp/welcome.html

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

我在Eclipse中运行Web服务器有很多不好的经验。 在大多数情况下,这与不可靠的类/资源重载有关。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM