首页 文章

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

提问于
浏览
0

我正在尝试使用Maven(版本3.3.3)在Tomcat 7上部署我的Web应用程序,但我得到了 Headers 中列出的异常 .

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

我有:

  • 已编辑 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>
  • 已编辑 settings.xml ($ USER_HOME / .m2 / settings.xml):
<servers>
    <server>
         <id>RemoteServer</id>
         <username>user</username>
         <password>pass</password>
    </server>
</servers>
  • 已配置 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>
  • 已编辑 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中的用户名/密码“应该”是一种矫枉过正,但我读到这可能会有所帮助,无论如何我也试过没有那些属性

  • 如果我测试管理器/文本(例如来自浏览器的manager / text / deploy)我得到一个响应(FAIL - 为命令[/ deploy]提供的参数无效,那很好)

我得到的错误是:

[错误]无法在项目ShareRideServer上执行目标org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy(default-cli): Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException:无法执行目标组织 . 项目中的apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy(default-cli)ShareRideServer:无法在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)调用Tomcat管理器org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)位于org.apache.maven.life.lifecycle的org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) . internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder . 构建(SingleThreadedBuilder.java:51)org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Life cycleStarter.java:128)org.apache.maven.maven.DefaultMaven.doExecute(DefaultMaven.java:307)org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)atg.apache.maven.DefaultMaven.execute (DefaultMaven.java:106)org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)位于org.apache的org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) . 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(在org.codehaus.plexus的org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)的java.lang.reflect.Method.invoke(Method.java:497)中委托了MethodAethodAccessorImpl.java:43) .classworlds.launcher.Launcher.launch(Launcher.java:229)org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launche r.java:356)由org.apache.tomcat上的org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager at org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141)引起 . maven.plugin.tomcat7.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:68)org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)org.apache.maven.lifecycle.internal.MojoExecutor.execute( MojoExecutor.java:208)...在java.net.DualStackPlainSocketImpl.smplConnect(DualStackPlainSocketImpl.java:79)的java.net.DualStackPlainSocketImpl.connect0(本地方法)中的java更多 Caused by: java.net.ConnectException: Connection refused: connect ,java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl . java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)at at java.net.SocksSocketImpl.connect(SocksSocket Impl.java:392)at java..Socket.connect(Socket.java:589)atg.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117)org.apache.http.impl .conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:178)atg.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304)at atorg.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)位于org.apache.http.impl的org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) . client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)at 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)at org.apache.tomcat.maven.plugin.tomcat7.deploy.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java: 82)at org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:132)... 23更多

1 回答

  • 0

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

相关问题