maven tomcat7插件验证失败,403 Forbidden

时间:2013-02-20 06:24:21

标签: maven tomcat7 maven-tomcat-plugin

经过数周的努力,我发布了这个帖子。我尝试尝试,因为我感到内疚,因为有类似于此的线程。但是我的错误仍然略有不同。所以我所拥有的是一个非常简单的弹簧(当然不需要弹簧bcz问题是maven)应用程序与maven。

这是我的pom的插件部分。

<plugins>

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0</version>
            <configuration>
                <url>http://localhost:8080/manager</url>
                <username>tomcat</username>
                <password>s3cret</password>
                <path>/Test</path>
                <port>8080</port>
            </configuration>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>

早些时候我遇到maven tomcat插件无法使用tomcat 7等问题,但现在用“tomcat7-maven-plugin”解决了。我使用“http://localhost:8080/manager”作为网址。对于这个maven tomcat编译器插件的几乎所有线程都是关于构建失败的。但我的构建成功(我运行tomcat7:deploy)。问题是tomcat正在回复

  

tomcatManager状态码:403,ReasonPhrase:Forbidden

以及我们在浏览器上遇到身份验证失败时看到的html。在我的Linux机器下,相同的代码工作正常。我尝试在settings.xml中使用server元素的不同场景,它位于.m2内部和maven_home / conf等内部。仍然无法正常工作。

正如我发现maven无法验证tomcat。找到用户名和密码,我可以使用GUI登录。所以期待在这里提供帮助。

p.s - 我的tomcat-users.xml fiel

<role rolename="manager-gui" />
<user username="tomcat" password="s3cret" roles="manager-gui"/>

5 个答案:

答案 0 :(得分:10)

网址不正确请尝试:

<url>http://localhost:8080/manager/text</url>

tomcat-users.xml文件的内容是什么。你有没有正确设置权限? 见http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html

答案 1 :(得分:0)

我可以让tomcat部署工作,但环境不同。所以,无论如何,我要告诉我怎么做,因为它可以帮助别人。

在这种情况下,我将tomcat6作为我的Web容器,并且我使用eclipse Helios作为IDE。

首先,我设置了环境变量,如maven网站(Maven download installation help)中所述。这意味着设置环境变量M2_HOME和M2,并且M2在我的路径变量中。

然后在eclipse中我有maven安装文件夹,本地存储库(如果不是默认值)和settings.xml文件正确。 (这些设置在Window - &gt; Preferences - &gt; Maven - &gt; Installations and User settings)

在tomcat_home \ conf \ tomcat-users.xml中我使用角色管理器脚本创建了用户。(注意,这里我使用的是tomcat6)

< role rolename="manager-script"/>
< user password="s3cret" roles="manager-script" username="tomcat"/>

在POM.xml中我有maven tomcat插件定义如下。

<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
    <url>http://localhost:8080/manager</url>
    <server>TomcatServer</server>
</configuration>
</plugin>

然后在eclipse运行配置中创建一个配置来运行目标&#34; tomcat6:deploy&#34; (来自apache的这个site说tomcat:deploy是目标,但它没有用。)

完美运行并将我的应用部署到容器中。一旦部署,应用程序需要使用&#34; tomcat6:undeploy&#34;在再次部署之前。

我不是这方面的专家,但我对某些事实仍有疑问。但是,由于我在很多地方看到这个问题,我认为这会帮助某人同样的问题。

谢谢

答案 2 :(得分:0)

今天我尝试使用Tomcat 7的相同应用程序。我需要将插件artifactId更改为“tomcat7-maven-plugin”。我必须将网址更改为“http://localhost:8080/manager”。完成这些更改后,部署工作正常。另外我发现maven在.m2文件夹中读取了settings.xml。 mvaen_home / conf中还有一个settings.xml文件,但它不是它读取的文件。我发现的另一件事是tomcat7没有取消部署tomcat6有一个取消部署。

答案 3 :(得分:0)

有时当上述条件中的所有条件都匹配且您仍然遇到错误时,您可能正在使用mvn tomat7:deploy命令。同时服务器由Eclipse维护,并且不会在heand中继续使用。您可以在Eclipse IDE中停止服务器,然后使用mvn命令再次尝试。

答案 4 :(得分:0)

尝试了几件事之后,以下配置对我有用。 请试一试

Tomcat的users.xml中

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

pom.xml

<!-- Maven Tomcat Plugin -->
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <configuration>
      <url>http://localhost:8080/manager/html</url>
      <username>tomcat</username>
      <password>tomcat</password>
      <update>true</update>
      <path>/Test</path>
    </configuration>
</plugin>