maven - Apache tomcat/maven部署

标签 maven tomcat

我非常努力地在不使用我的 IDE (Intellij) 的情况下部署我的网站。我遇到了一些重大问题。一旦我解决了一件事,我就遇到了另一个障碍,我花了几天的时间感到沮丧和放弃,然后又回到它,甚至更接近它。所以我希望有人能在这里帮助我!

首先,我使用的是 Intellij、Tomcat 8、JSF 和 Maven。我首先对一些事情感到困惑,第一件事是 tomcat 甚至知道要部署什么。其次,经理到底是什么

<plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/${project.build.finalName}</path>
                <update>true</update>
                <url>http://localhost:8080/manager/text</url>
                <username>tomcat</username>
                <password>tomcatuser</password>
            </configuration>
        </plugin>

第三,文件结构到底应该是什么样子。因为如果您使用的是 apache tomcat,所有文件是否也会进入项目结构?还是您可以将 tomcat 分开,只将您的 tomcat 链接到包含您的应用程序的正确目录?

<role rolename="tomcat" />
    <role rolename="manager-gui" />
    <role rolename="manager-script" />
    <role rolename="admin-gui" />
    <user username="tomcat" password="tomcatuser"
          roles="tomcat,manager-gui,admin-gui,manager-script" />

截至目前,我将 apaches 文件夹中的所有文件放入项目的主目录中,因为我遇到了问题并且厌倦了尝试修复它。现在我正在尝试部署(老实说我不确定部署和运行之间的区别是什么)我猜也许部署会重新创建 war 文件?而 run 只运行当前的 war 文件?反正不是重点。运行似乎正常,唯一的问题是我无法通过关机来停止服务。它还有一个我不想要的上下文路径。如果可能的话,我不想要上下文路径。

下一个问题是,当我运行 tomcat7:deploy(在 ide 中)时,它给了我这个错误。

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project JavaServerFaces: Tomcat return http status error: 404, Reason Phrase: Not Found: -> [Help 1]

我认为这是因为没有/manager/text.... 但我什至不知道此时的经理是什么,所以我有点迷路了。希望有人可以帮助我更好地了解 Apache Tomcat 的结构/完成方式。

enter image description here

最佳答案

根据 Servlet API每个 Web 应用程序都必须打包在自己的“war”文件中。这是在 Tomcat 之外的。这适用于任何标准 Java 网络应用程序服务器。

several ways在 Tomcat 中部署应用程序。使用 Tomcat 管理器部署是 one of them . Tomcat 管理器只是另一个带有 special permissions 的 Web 应用程序,就像部署应用程序所需的一样。经理应用程序通常分布在 Tomcat binaries 之间。 .

Tomcat 是一个服务器。它生活在自己的进程中,默认通过端口 8080 与世界通信。安装管理器后,其他进程可以通过 HTTP 请求部署应用程序。浏览器或任何其他用户代理。

您的 IDE 启动一个使用官方 tomcat7-maven-plugin 的 Maven 进程执行此类请求。反过来,该插件需要已经部署的管理器应用程序,因为它将执行 an HTTP PUT request以您的 war 文件作为正文,以便部署您的应用程序。请注意,您可以在 IDE 之外运行 Maven,您只需要 pom.xml 文件。

用户和角色文件只是 Tomcat 中可能的几种身份验证配置之一所需的(全局)文件:MemoryRealm .请注意,经理应用程序需要 special roles那里。

我认为 HTTP 404 错误是由于插件指向的目标 Tomcat 服务器中没有管理器应用程序造成的。只需按照 Manager App HOWTO 的步骤操作即可以便正确配置它。

运行和部署的区别goals of the tomcat7-maven-plugin是 run 将在同一个 maven 进程中嵌入一个服务器,而 deploy 目标旨在将 war 文件部署到另一个可能是远程的进程中。我不知道关机目标不起作用,也许您会找到答案 in a smiliar question .

关注similar questions同样,为了将应用程序部署为“ROOT”应用程序。

希望对您有所帮助。

关于maven - Apache tomcat/maven部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27339733/

相关文章:

java - 需要有关在集成设置而不是开发中使用 Maven 的信息

maven - 在 Android Studio 中使用 jcenter 和 mavenCentral

xml - 在 tomcat webapp 中动态设置上下文参数?

linux - Tomcat Intellij 理念 : Remote deploy

java - 使用retrolambda 将 Java 1.8 代码转换为 1.6

maven - Intellij Idea中jar内容的调试

maven - 如何将特定的Maven配置文件分配给intellij运行配置?

java - 如何永久增加java堆大小

java - 可能的根本原因包括 -Xss 设置过低和非法循环继承依赖项

tomcat - tomcat osgi 实现中的简单 Web 应用程序包 (WAB)