plugin example desplegar deploy java-ee maven tomcat maven-tomcat-plugin

java-ee - example - tomcat maven plugin



tomcat: deploy: "No se puede invocar al administrador de Tomcat: se rechazó la conexión" (7)

Intenté implementar mi aplicación en Tomcat utilizando Maven y encontré this muestra.

Ese es un fragmento de mi pom.xml:

<!-- Maven Tomcat Plugin --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <url>http://127.0.0.1:8080/</url> <server>TomcatServer</server> </configuration> </plugin> <!-- Maven compiler plugin --> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin>

Y cuando ejecuto tomcat:deploy aparece este error: Cannot invoke Tomcat manager: Connection refused . Eso es stacktrace completo:

[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project webapp: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project webapp: Cannot invoke Tomcat manager at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) 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:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) at org.codehaus.classworlds.Launcher.main(Launcher.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager at org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:149) at org.codehaus.mojo.tomcat.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:70) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 25 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at sun.net.NetworkClient.doConnect(NetworkClient.java:163) at sun.net.www.http.HttpClient.openServer(HttpClient.java:388) at sun.net.www.http.HttpClient.openServer(HttpClient.java:523) at sun.net.www.http.HttpClient.<init>(HttpClient.java:227) at sun.net.www.http.HttpClient.New(HttpClient.java:300) at sun.net.www.http.HttpClient.New(HttpClient.java:317) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836) at org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:597) at org.codehaus.mojo.tomcat.TomcatManager.deployImpl(TomcatManager.java:662) at org.codehaus.mojo.tomcat.TomcatManager.deploy(TomcatManager.java:295) at org.codehaus.mojo.tomcat.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85) at org.codehaus.mojo.tomcat.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:85) at org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141) ... 28 more

No quería usar la autenticación, así que me salté esos pasos. Pensé que esto podría causar mi error, pero cuando traté de agregarlos, nada cambió. ¿Sabes dónde está mi error?

UPD: Lo siento, pero no puedo verificar nuestras soluciones porque ya no estoy trabajando en este proyecto. Pero no voy a cerrar esta pregunta, así que si crees que tu solución funcionará, siéntete libre aquí y es posible que ayude a alguien.


Creo que un punto importante aquí es que debes usar tomcat 7 : deploy. No pase por alto el 7 .

Estaba usando el autocompletado y siempre finalicé con Tomcat: implementar e ignorar ciegamente el pequeño 7.


Cuando use el complemento Tomcat 7, haga lo siguiente:

pom.xml

<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>tomcatserver</server> <path>/mycontext</path> <username>admin</username> <password>admin</password> </configuration> </plugin>

settings.xml

<server> <id>tomcatserver</id> <username>admin</username> <password>admin</password> </server>

tomcat-users.xml

<user username="admin" password="admin" roles="manager-script"/>

correr

mvn tomcat7:deploy


Me tomó un tiempo entender el despliegue del complemento maven con el mecanismo Tomcat 7 pero funciona de la siguiente manera:

Para usar con el comando:

mvn tomcat7: implementar

¡El servidor Tomcat debe inicializarse primero! Puede elegir iniciar desde IDE o al script de inicio ubicado en la carpeta% TOMCAT_HOME% / bin

El resultado de ejecutarlo debería verse así:

mvn tomcat7: corrida de guerra

Tomcat no es necesario inicializar porque el script anterior iniciará automáticamente el servidor. Sin embargo, el contexto / administrador no se habilitará para su uso en el navegador.

El resultado de ejecutarlo debería verse así:

Incluso puede ejecutar el comando mvn clean package para realizar una limpieza previa del proyecto.

Algunas configuraciones adicionales:

[% TOMCAT_HOME% / conf] tomcat-users.xml

<role rolename="tomcat"/> <role rolename="admin-script"/> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="manager"/> <role rolename="admin"/> <user password="tomcat" roles="tomcat" username="tomcat"/> <user password="admin" roles="manager-gui" username="admin"/> <user password="pass@word1" roles="admin,admin-script,manager-gui,manager-script,manager-jmx,manager-status" username="mavenuser"/>

[% MAVEN_HOME% / conf] settings.xml

<server> <id>your_server</id> <username>mavenuser</username> <password>pass@word1</password> </server>

[% project%] pom.xml

<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>your_server</server> <path>/project_context</path> <username>mavenuser</username> <password>pass@word1</password> </configuration> </plugin>

¡Espero eso ayude!


Si el problema se debe a Java Heap Space. Luego puede cambiarlo siguiendo los siguientes pasos, si está instalado como un servicio:

1- Ejecutar desde cmd "Tomcat_DIR / tomcat6w.exe" // ES // ServiceName

2- Abrirá la GUI de tomcat. En el menú JAVA, brinde configuración de grupo de memomry.

Esa cantidad de memoria estará reservada para Tomcat. Debería resolver su problema de montón de memoria.


Tengo el problema similar:

Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager at org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141) at org.apache.tomcat.maven.plugin.tomcat7.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:68) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 20 more Caused by: java.net.SocketException: Connection reset at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:115) at java.net.SocketOutputStream.write(SocketOutputStream.java:155) at org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:181) at org.apache.http.impl.conn.LoggingSessionOutputBuffer.write(LoggingSessionOutputBuffer.java:73) at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:115) at org.apache.tomcat.maven.common.deployer.TomcatManager$RequestEntityImplementation.writeTo(TomcatManager.java:880) at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:89) at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:108) at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:117) at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:265) at org.apache.http.impl.conn.ManagedClientConnectionImpl.sendRequestEntity(ManagedClientConnectionImpl.java:203) at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:236) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121) at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:682) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486) at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) at org.apache.http.impl.client.CloseableHttpClient.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.execute(AbstractCatalinaMojo.java:132) ... 23 more

Compruebo el registro de tomcat (dir: log/localhost_access.xxx , luego encontré que cuando maven carga el archivo .wawr a tomcat, el código de estado http de respuesta es 403 , lo que significa que el acceso estaba prohibido.

Luego verifiqué que el manager y la aplicación de host tienen el mismo directorio: META-INF . en este directorio, encontré el archivo context.xml , este archivo limita el acceso del manager y la aplicación de host . el texto clave está abajo:

<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>

Cambie el atributo allow que su manager acceso a IP y la aplicación de host , a continuación, el problema resuelto.


Tuve el mismo problema y parecía ser la versión de Tomcat contra la versión de complemento de Maven. Utilicé tomcat 7 e intenté implementar con tomcat:deploy-only lugar de tomcat7:deploy only. Si este es tu caso, prueba tomcat7:deploy-xxx .


Yo tuve el mismo problema. En mi caso, lo soluciono con run run-war lugar de deploy para Tomcat7 con configuración:

<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080</url> <path>/</path> </configuration> </plugin>