2017-08-11 47 views
0

我想用Maven(版本3.3.3)在Tomcat 7上部署我的web应用程序,但我得到了标题中列出的例外。Maven tomcat插件 - 无法调用Tomcat管理器

我试过很多解决方案,但没有人为我工作。

我:

  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/PO m.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 /目录经理/ 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中的配置是基本的)

  • 我可以毫无问题

  • 的用户名/密码在POM访问管理器GUI“应该”是矫枉过正,但我​​看周围,可以帮助,在任何情况下,我也试过没有这些属性

  • 如果我测试管理器/文本(例如管理器/文本/从浏览器部署)我得到一个响应(FAIL - 用于命令提供了无效的参数[/部署]这很好)

我得到的错误是:

无法执行目标org.apache.tomcat.maven:项目ShareRideServer上的tomcat7-maven-plugin:2.2:deploy(default-cli):无法调用Tomcat管理器:Connection refused:connect - > [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:未能执行目标org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:在项目上部署(default-cli)ShareRideServer:无法调用Tomcat管理器 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at 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) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache。maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.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。主(MavenCli.java:197) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java :43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.clas sworg.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at 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:不能调用Tomcat管理 在org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.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.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ...... 20多个 造成的:java.net.ConnectException:连接被拒绝:在java.net上连接 。 DualStackPlainSocketImpl.connect0(本机方法) 在java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl .java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at j ava.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at 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) 在有机apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) at org.apache.http.impl。 client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) at org.apache.http.impl.client.CloseableH ttpClient.execute(CloseableHttpClient.java:82) at org.apache.tomcat.maven.common.deployer.TomcatManager.invoke(TomcatManager.java:742) at org.apache.tomcat.maven.common.deployer.TomcatManager。 deployImpl(TomcatManager.java:705) at org.apache.tomcat.maven.common.deployer.TomcatManager.deploy(TomcatManager.java:388) at 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。执行(AbstractCatalinaMojo.java:132) ...23更多

+0

http://tomcat.apache.org/maven-plugin-trunk/tomcat7-maven-plugin/usage.html据此,用户名和密码进入服务器块 – rohanagarwal

+0

是的,正如我在第三个项目符号中所写的点,我也尝试没有用户名和密码在pom.xml中,但只在服务器块:) –

回答

0

答案是:配置是正确的。但是,总是检查您的防火墙工作...我尝试与另一个连接,我没有问题。看起来防火墙正在悄悄地杀死所有的请求。