Maven tomcat插件-无法调用tomcat管理器



我正试图用Maven(3.3.3版)在Tomcat7上部署我的web应用程序,但我得到了标题中列出的异常。

我尝试了很多解决方案,但没有人适合我。

我有:

  1. 编辑的tomcat-users.xml($CATALINA_HOME/conf/tomcat user.xml):

    <tomcat-users>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="user" password="pass" roles="manager-script"/>
    <user username="user2" password="pass2" roles="manager-gui"/>
    </tomcat-users>
    
  2. 编辑的settings.xml($USER_HOME/.m2/settings.xml):

    <servers>
    <server>
    <id>RemoteServer</id>
    <username>user</username>
    <password>pass</password>
    </server>
    </servers>
    
  3. 配置的pom.xml($MY_PROJECT/pom.xml):

    <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version> 
    <configuration>
    <server>RemoteServer</server>
    <url>http://my.public.ip.address:8080/manager/text</url>
    <username>user</username>
    <password>pass</password>
    </configuration>   
    </plugin>
    
  4. 编辑的context.xml($CATALINA_HOME/webapps/manager/META-INF/context.xml)

    <Context antiResourceLocking="false" privileged="true" >
    <!--
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
    -->
    <Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap"/>
    </Context>
    

附加说明:

  • 我尝试将两者都部署到8.0.45和8.5.16(对于后一个服务器,context.xml中的配置是基本的)

  • 我可以毫无问题地访问管理员GUI

  • pom中的用户名/密码"应该"有些过头了,但我四处阅读了一下,这可能会有所帮助,在任何情况下,我也尝试过不使用这些属性

  • 如果我测试管理器/text(例如浏览器中的管理器/text/deploy),我会得到响应(FAIL-为命令[/deploy]提供的参数无效,没关系)

我得到的错误是:

[错误]未能执行目标org.apache.tomcat.maven:tomcat7-maven插件:2.2:在项目ShareRideServer上部署(默认cli):无法调用tomcat管理器:连接被拒绝:connect->[帮助1]org.apache.maven.lifecycle.LifecycleExecutionException:未能执行目标.org.apache.tomcat/maven:tomcat 7-maven-plugin:2.2:在项目SharedServer上部署无法调用Tomcat管理器网址:org.apache.maven.hifecycle.internal.MojoExecution.execute(MojoExecutitor.java:216)网址:org.apache.maven.hifecycle.internal.MojoExecution.execute(MojoExecutitor.java:153)网址:org.apache.maven.hifecycle.internal.MojoExecution.execute(MojoExecutitor.java:145)网址:org.apache.maven.hifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModelBuilder.java:116)网址:org.apache.maven.hifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModelBuilder.java:80)网址:org.apache.maven.hifecycle.internal.builders.singlethreaded.SingleThreaddBuilder.build(SingleThreaddBBuilder.java:51)网址:org.apache.maven.hifecycle.internal.LifecycleStarter.execute(LifecycleSstarter.java:128)网址:org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)网址:org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)网址:org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)网址:org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)网址:org.apache.maven.cli.MavenCli.main(MavenCli.java:197)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位于java.lang.reflect.Method.ioke(Method.java:497)网址:org.codehaus.cluster.classworlds.launcher.launcher.launchEnhanced(launcher.java:289)网址:org.codehaus.cluster.classworlds.launcher.launcher.launch(launcher.java:229)网址:org.codehaus.cluster.classworlds.launcher.launcher.mainWithExitCode(launcher.java:415)网址:org.codehaus.cluster.classworlds.launcher.launcher.main(launcher.java:356)由:org.apache.maven.plugin.MojoExecutionException引起:无法调用org.apache.Tomcat.maven.pplugin.tomcat7.AbstractCatalinaMojo.execute上的Tomcat管理器(Abstract卡塔琳娜Mojo.java:141)网址:org.apache.tomcat.maven.plugin.tomcat7.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:68)网址:org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)网址:org.apache.maven.hifecycle.internal.MojoExecution.execute(MojoExecutitor.java:208)…还有20个由:java.net.ConnectException:连接被拒绝:在java.net.DualStackPlainSocketImpl.connect0(本机方法)处连接位于java.net.DalStackPlainSocketImpl.socketConnect(DualStackPlasinSocketimpl.java:79)位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSOCetImpl.java:350)位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSOCetImpl.java:206)位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSOCetImpl.java:188)位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)位于java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)位于java.net.Socket.connect(Socket.java:589)网址:org.apache.http.con.scheme.PlainSocketFactory.connectSocket(PlainSocket Factory.java:117)网址:org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperators.java:178)网址:org.apache.http.impl.con.ManagedClientConnectionImpl.open(ManagedClientConnection impl.java:304)网址:org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)网址:org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)网址:org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)网址:org.apache.http.impl.client.CloseableHttpClient.exexecute(CloseableHttpClient.java:82)网址:org.apache.tomcat.maven.common.deployer.TomcatManager.ioke(TomcatManager.java:742)网址:org.apache.tomcat.maven.common.deployer.TomcatManager.deployImpl(TomcatManager.java:705)网址:org.apache.tomcat.maven.common.deployer.TomcatManager.deploy(TomcatManager.java:388)网址:org.apache.tomcat.maven.plugin.tomcat7.deploy.AbstractDeployWarMojo.deployWar(AbstractDeployment WarMojo.java:85)网址:org.apache.tomcat.maven.plugin.tomcat7.deploy.AbstractDeployMojo.invokeManager(AbstractDeployment Mojo.java:82)网址:org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractKatalinaMojo.java:132)…还有23个

答案是:配置是正确的。但是,总是在工作时检查防火墙。。。我尝试了另一个连接,但没有问题。防火墙似乎在悄无声息地扼杀所有请求。

最新更新