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

安德里亚·扎诺蒂

我正在尝试使用 Maven(版本 3.3.3)在 Tomcat 7 上部署我的 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 中的用户名/密码“应该”是一种矫枉过正,但我​​阅读了这可能会有所帮助,无论如何我也尝试过没有这些属性

  • 如果我测试管理器/文本(例如来自浏览器的管理器/文本/部署),我会收到响应(失败 - 为命令 [/deploy] 提供的参数无效,这很好)

我得到的错误是:

[错误] 无法在项目 ShareRideServer 上执行目标 org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli):无法调用 Tomcat 管理器:连接被拒绝:连接 -> [帮助 1]org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目 ShareRideServer 上执行目标 org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli):无法在 org.apache.maven 调用 Tomcat 管理器.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 在 org.apache.maven.lifecycle.internal.LifecycleStarter。在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 在 org.apache.maven.DefaultMaven 执行(LifecycleStarter.java:128) .execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org. apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl。 invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus .plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 由:org.apache .maven.plugin.MojoExecutionException:无法在 org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141) 处调用 Tomcat 管理器在 org.apache.tomcat.maven.plugin.tomcat7.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:6在org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)... 20多个Java语言:所致。 net.ConnectException:连接被拒绝:连接在 java.net.DualStackPlainSocketImpl.connect0(Native Method) 在 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在 java.net.AbstractconnectPlainAddressSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) (AbstractPlainSocketImpl.java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.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.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117) 在 org.apache.http.impl.conn.DefaultClientConnectionOperator .openConnection(DefaultClientConnectionOperator.java:178) 在 org.apache.http.impl.conn.ManagedClientConnectionImpl。open(ManagedClientConnectionImpl.java:304) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) at 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.execute(CloseableHttpClient.java:82) 在 org.apache.tomcat.maven .common.deployer.TomcatManager.invoke(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(AbstractDeployWarMojo.java:85) 在 org.apache.tomcat.maven.plugin.tomcat7.deploy .AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:82) 在 org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:132) ... 23 更多

安德里亚·扎诺蒂

答案是:配置正确。但是,请始终检查工作中的防火墙...我尝试了另一个连接,但没有问题。防火墙似乎正在默默地杀死所有请求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章