【问题标题】:deploy a java-ee application which was in openshift, on tomcat 7在tomcat 7上部署一个在openshift中的java-ee应用程序
【发布时间】:2016-08-07 20:11:52
【问题描述】:

我是 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 App Manager。

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

请指导我,感谢您在我的问题上花费的时间。

【问题讨论】:

  • 像往常一样:服务器日志中有错误吗?服务器日志中有什么有趣的东西吗?
  • 不,所有接缝都很好。例如,如果我将 text.html 放在 myapp 文件夹中并打开 localhost:8080/myapp/text.html 它会打开,但我的应用程序部分位于单独的文件夹中,我不知道如何访问它
  • 嗯......那么我只能猜测它是愚蠢的,因为在实际部署的战争中没有任何 index.html,webapp 名称以某种方式被覆盖为“myapp”以外的其他东西",或者类似的简单的东西可以忽略。日志记录应该指出部署了哪个应用程序以及在哪个上下文名称下,它是“myapp”吗?

标签: java tomcat jakarta-ee openshift deploying


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 它在 localhost 上使用 tomcat 7.0 和 8.0 运行,但 netbeans 部署它。所以这意味着可以将它部署在普通的 tomcat 上,但我不知道该怎么做
    • @SeyedAliRoshan 您的意思是说您的应用程序在由 Netbeans 部署时可以在本地 Tomcat 中运行吗?那么,您的问题是您不知道如何进行手动部署?
    【解决方案3】:

    很简单。

    有两种方法可以使用自定义路径在 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 文件并按下部署按钮。(不需要填写@987654333 @字段)

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 2015-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 2022-11-11
      • 2015-03-13
      相关资源
      最近更新 更多