在 tomcat 7 上部署一个处于 openshift 中的 java-ee 应用程序

deploy a java-ee application which was in openshift, on tomcat 7

我是 Java EE 和 Tomcat 的新手。

我在 OpenShift 中使用 JBoss EWS 2.0 开发了一个 REST Java 应用程序,我没有遇到任何问题。最近,我们有一台服务器,我必须 运行 我的网络服务。

How to deploy a war file in Tomcat 7 之后,我转到了我的应用程序根目录并使用了这个命令:

jar -cvf myapp.war *

请注意,myapp 是我的应用程序名称。

我将 .war 文件放入 /base/path/of/tomcat/webapps/ 并转到 Tomcat GUI 应用程序管理器。

我看到 Tomcat 使用我的 .war 名称创建了一个文件夹并将文件放入其中,所以我启动了我的应用程序但是当我去http://localhost:8080/myapp/ 它返回 404。但是,在 OpenShift 中,当我打开它(打开根路径)时,它显示 index.html 因为我的网络服务路径无效并且不起作用。

请指导我,感谢您花时间回答我的问题。

我必须写一个答案,因为我不能发表评论。

我建议给我们一份 web.xml 文件的副本。

另一方面,您必须知道 Tomcat 是一个 Servlet 容器,JBoss 是一个全栈 JEE 服务器。如果您的 Web 应用程序中有 EJB,它将无法工作。

AS Clément Duveau 说 EJB 应用程序不能部署在 Servlet 容器中(如 Tomcat)。 EJB 应用程序需要部署在 Application Server 中,例如 JBoss、Wildfly、GlassFish、Weblogic、Websphere、TomEE 等

与 Tomcat 最相似的服务器(Java EE 兼容)是 TomEE。

建议:如果需要使用Tomcat,可以将EJB换成Spring Framework

很简单。

有两种方法可以使用自定义路径在 tomcat 上部署 war 文件

第一个是 将您的 war 文件重命名为您想要的自定义 URL(例如 war 文件名为 java-web-app-1.0.war 而您的路径为 myapp 因此您必须将其重命名为myapp.war)

复制并放在 {tomcat-path}/webapps/ 下,然后 Tomcat/TomEE 完成它的工作。 (它会创建一个与您的 war 文件同名的空目录)

大约 1 分钟后,您可以检查路径(在此示例中必须是 localhost:8080/myapp 并查看您的 war 文件已部署)

第二个是使用 Tomcat GUI。

转到 Web Application Manager 部分。

这是一个这样的页面:

Deploy 框中只需填写 Context 字段(它将是自定义路径,在本例中为 myapp),然后选择 war 文件和按下部署按钮。(不需要填写 XML Configuration file URL 字段)

然后它会给你这样的消息:

这意味着您的 war 文件已部署在自定义路径上。