6

我正在使用 Java 和 Maven 构建系统开发 Web 应用程序,Web 服务器是 Tomcat 7.0.12。通过 Maven 构建命令将整个项目打包到 WAR 文件到 \target 目录后,我必须将其复制到 Tomcat 主页的 webapps 文件夹才能运行它。这非常不方便,尤其是当我修改了一些源文件时,因为我必须再次执行所有这些操作(构建、复制到 Tomcat、运行它)。关于这个问题,我研究了一些关于 Maven、Tomcat、Eclipse 的文章,但没有结果。你能帮我吗: 1.如何让Tomcat在项目的目标目录上运行WAR文件,该文件是直接由Maven命令构建的?不需要复制/粘贴 WAR 文件并重新启动 Tomcat?2. 如何配置Tomcat 以在Eclipse 上调试Web 应用程序?非常感谢!

顺便说一句,我已经多次阅读并尝试配置 Tomcat、Maven 和 pom 文件。但是我不知道确切的配置是什么,因为有很多建议!您能为我提供一个特定的配置示例吗?这是我的配置文件:

Tomcat tomcat-users.xml

  <role rolename="manager-gui"/>
  <user username="admin" password="" roles="manager-gui"/>
  **<role rolename="manager"/>
  <user username="admin" password="" roles="manager"/>**
  <role rolename="admin-gui"/>
  <user username="admin" password="" roles="admin-gui"/>

Maven 设置.xml

Tomcat 管理员

以及项目的 pom.xml 文件:

<build>
      <finalName>my-project</finalName>
      <defaultGoal>package</defaultGoal>
      <plugins>
         <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>tomcat-maven-plugin</artifactId>
       <version>1.1</version>
       <configuration>
          <server>tomcat</server>  
              <warFile> ${project.build.directory}/${project.build.finalName}.war</warFile>
       </configuration>
     </plugin>
      </plugins>
   // Other plugins
   </build>

更多详细信息:如果我在启动 Tomcat 实例之前运行 mvn tomcat:deploy,则返回的错误是“无法调用 Tomcat 管理器:连接被拒绝:连接。” 否则,如果在调用 mvn tomcat:deploy 之前已启动 Tomcat 实例,则错误为“无法调用 Tomcat 管理器:服务器返回 HTTP 响应代码:403 for URL: http://localhost:8080/manager/deploy?path=% 2Fmy-project&war= ..."

4

2 回答 2

4

有几种方法可以做到这一点。

tomcat maven 插件http://mojo.codehaus.org/tomcat-maven-plugin/为您提供了一种从 maven 直接部署到 tomcat 的方法。您必须首先配置您的 tomcat 用户。有关如何配置用户的说明,请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/realm.html 。

对于调试,您可以使用http://wiki.apache.org/tomcat/FAQ/Developing中指定的参数启动 tomcat

另一种方法是将tomcat配置为指向您的战争。请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/context.html特别是docbase参数。

编辑 1 基于修改后的问题 http 403 is a disabled 这意味着您没有正确验证。

将您的 tomcat-users.xml 更改为如下所示:

您需要在 pom.xml 中添加对用户名/密码的引用。您的 settings.xml 必须包含(基于您的配置)

<server>
    <id>tomcat</id>
    <username>admin</username>
    <password></password>
</server>

有一个很好的页面http://www.avajava.com/tutorials/lessons/how-do-i-deploy-a-maven-web-application-to-tomcat.html可以更全面地解释它。但是,信息可能已过时。

于 2011-04-16T16:09:39.297 回答
2

我遇到了完全相同的问题。

我想是 eclipse-tomcat 插件在做这个。而且我不知道为什么它在 tomcat 7 中的工作方式与我没有问题的 tomcat 6 不同。

无论如何,我所做的是将 maven 构建到 /web-app/WEB-INF 目录中

<build>
    <directory>${basedir}/src/main/webapp/WEB-INF</directory>
...
</build>

在这个配置之后,eclipse:eclipse 应该产生一个正确的 eclipse 项目/类路径文件 resources:resources 也应该相应地工作。

于 2011-10-19T00:00:19.737 回答