Que hacer si estas buscando la manera de instalar en una computadora sin acceso a la red una aplicación Web Java que corre en un servidor Tomcat. Más aún si necesitas darle el ejecutable a un cliente...
Creo que esta solución parece genial,, entregar al cliente un archivo ejecutable,, y que este solo ejecute el jar, con el tomcat embebido y que este solo tenga que hacer doble click en el ejecutable y listo! Ya tenga su aplicación corriendo en su PC. Es la mejor IDea!!!
Pensá que si no se hace esto, tenemos que instalarle en su PC el servidor Tomcat 7, poner el war,, hacer el deploy,, etc... y si hay que hacer una modificación?? Repetir los pasos,, suena engorroso!!!
Por suerte con la ayuda de Maven y un plugin podemos solucionar esto!! Como??
Usando tomcat7:exec-war
maven goal. Este toma el WAR artifact y lo empaqueta en conjunto con las dependencias de Tomcat. Por último, también, incluye Tomcat7RunnerCli
Main-class en el manifest.
Con ganas de probarlo? Agregar este código en tu proyecto WAR existente y agregarlo en el pom.xml
:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<path>/standalone</path>
<enableNaming>false</enableNaming>
<finalName>standalone.jar</finalName>
<charset>utf-8</charset>
</configuration>
</execution>
</executions>
</plugin>
Luego ejecutar mvn package
y al finalizar podrán encontrar el archivo standalone.jar
en el directorio target
. Correr una aplicación web nunca fue tan fácil:
$ java -jar target/standalone.jar
...por último ejecutar en el browser http://localhost:8080/standalone
.
Por ejemplo si queres ejecutar la aplicación en otro puerto debes escribir:
$ java -jar standalone.jar -httpPort=7070
Espero que les haya servido, la verdad que a mi me parece BIEN poder hacer
entregables de esta manera, ya que cuando instalamos la aplicación en el cliente,, darle un solo archivo .bat o .sh para que lo ejecute es mas confiable que pedirle que instalar el servidor por un lado, deployar el .war y luego hacer el restart del mismo.