tomcat-maven-plugin 403错误

Яри*_*нко 34 tomcat maven maven-tomcat-plugin

当我使用mvn tomcat:tomcat-maven-plugin的部署时出现403错误:

无法在项目my-webapp上执行目标org.codehaus.mojo:tomcat-maven-plugin:1.0:deploy(default-cli):无法调用Tomcat管理器:服务器返回HTTP响应代码:403用于URL: http://localhost:8080/manager/text/deploy?path=%2Fdms&war=

我认为这是因为空战参数.但为什么它是空的???

在pom.xml中有:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>tomcat-maven-plugin</artifactId>

  <configuration>
    <warFile>target\my-webapp.war</warFile>
    <server>myserver</server>
    <url>http://localhost:8080/manager/text</url>
    <path>/dms</path>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

Iva*_*van 45

你应该使用/ text:

HTTP://本地主机:8080 /经理/文

并添加到用户角色管理器脚本


小智 27

您使用的是tomcat 7,您应该将插件配置保留在pom.xml中,如下所示:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
    <configuration>
        <url>http://localhost:8080/manager/html</url>
        <server>tomcat</server>
        <path>/finance</path>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我已尝试使用版本配置,如上例所示,但它对我不起作用.在settings.xml中,shoud具有服务器的配置,与pom.xml中的值匹配

<settings>
    <servers>
        <server>
            <id>tomcat</id>
            <username>admin</username>
            <password>admin</password>
        </server>
    </servers>
</settings>
Run Code Online (Sandbox Code Playgroud)

所以,mvn tomcat:deploy或mvn tomcat:redeploy(如果你已经部署了app),或者mvn tomcat:run(用tomcat down)应该可以工作.

  • 尾随的"/ html"是关键 - 我需要它才能让它在Tomcat 7上工作. (7认同)
  • 对于某些人来说,tomcat 7似乎需要一个URL,如:<http:// localhost:8080/manager/text>.请参阅[此答案](http://stackoverflow.com/a/4553021/99717)相关问题. (4认同)

Tom*_*icz 14

/manager默认情况下,应用程序由用户名/密码保护.如果输入http:// localhost:8080/manager,则还会要求您提供安全凭证.首先在Tomcat中创建/启用用户:取消或几次尝试失败后,Tomcat将在错误屏幕上提供帮助.然后使用这些凭据tomcat-maven-plugin作为解释在这里:

将插件配置块添加到您的pom.xml:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
    <configuration>
            <server>myserver</server>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

将相应的服务器块添加到settings.xml:

<server>
    <id>myserver</id>
    <username>myusername</username>
    <password>mypassword</password>
</server>
Run Code Online (Sandbox Code Playgroud)


Ami*_*nai 8

你只需要通过添加"/ html"来更改网址,这样它就像这个http:// localhost:8080/manager/html和bingo它的工作希望有帮助


Nar*_*edi 8

对于Tomcat7,在tomcat-users.xml中,您还需要rolename manager-script:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="s3cret" roles="manager-script,manager-gui"/>
Run Code Online (Sandbox Code Playgroud)

在项目的POM.xml中

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>tomcat-maven-plugin</artifactId>
   <configuration>
        <url>http://localhost:8080/manager/text</url>
        <server>myserver</server>
        <path>/sw</path>
   </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

和maven的settings.xml:

<servers>
 <server>
  <id>myserver</id>
  <username>tomcat</username>
  <password>s3cret</password>
 </server>
</servers>
Run Code Online (Sandbox Code Playgroud)


小智 7

必须确保完成一些步骤.这可能是一个真正的黑洞.

如果您正在使用org.codehaus.mojo中的tomcat-maven-plugin,则必须使用以下配置:

<configuration>
    <url>http://localhost:8080/manager/text</url>
    <warFile>your_war_filename.war</warFile>
    <server>server_name_on_settingsxml</server>
</configuration>
Run Code Online (Sandbox Code Playgroud)

请确保您在maven settings.xml上定义了"server_name_on_settingsxml"服务器凭据.使用mvn tomcat:deploy(你必须使用这个'tomcat'前缀),这是读取部署上述配置的唯一方法.

但是,如果您使用org.apache.tomcat.maven中的tomcat7-maven-plugin,则必须使用mvn tomcat7:deploy.'tomcat7'前缀将从插件中读取配置:

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
Run Code Online (Sandbox Code Playgroud)

我正在使用tomcat:deploy,我在pom.xml上定义了tomcat7-maven-plugin.所以,maven部署从未读过我的配置标签......

如果您确保正确定义了用户名和密码,并且在部署时使用了正确的插件,那么它将起作用.


小智 6

如果您尝试使用codehouse tomcat插件版本1.1在Tomcat 7服务器上进行部署,则可能会出现403错误.版本1.1尚不支持Tomcat 7.

如果您使用的是Tomcat 7,则应使用Cargo.


Geo*_*rge 6

如果您使用的是Tomcat 7:

  1. 在pom.xml中更改配置以使用插件的Tomcat 7版本

    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
            <url>http://127.0.0.1:8080/manager/html</url>
            <server>TomcatServer</server>
            <path>/your_context</path>
            <username>some_user_name</username>
            <password>some_password</password>
        </configuration>
    </plugin>
    
    Run Code Online (Sandbox Code Playgroud)

注意和值 - 它们与Tomcat 6的不同.

  1. 不要忘记在脚本中将"tomcat:deploy"更改为"tomcat7:deploy",或者在Eclipse中将外部工具配置启动器更改为"tomcat:deploy".
  2. 将服务器配置添加到settings.xml,通常位于.m2文件夹下
<server>
    <id>TomcatServer</id>
    <username>some_user_name</username>
    <password>some_password</password>
</server>
Run Code Online (Sandbox Code Playgroud)
  1. 如果您需要其他选项,例如部署位于非标准文件夹中的WAR文件,请访问:Tomcat 7 Maven插件