¿Cómo implementar una guerra en un servidor integrado de embarcadero que se ejecuta en un contenedor ejecutable?

Quiero implementar un archivo de guerra, llamémoslo app.war, en un embarcadero incrustado.

Así que el código más simple para eso es:

new WebAppContext(server, path, "/");

donde ruta es eventualmente algo así como "./dist/app.war". Y funciona de maravilla cuando se ejecuta desde Eclipse, pero las cosas empeoran cuando quiero hacer lo mismo desde un contenedor ejecutable de mi proyecto.

Incluso si la arquitectura del frasco es buena:

  • META-INF
  • dist
    • app.war
  • ...

No se encuentra el archivo. Sé que las rutas estándar no son consistentes en la ejecución de archivos jar, pero intentarlo con "jar:file:.../project.jar!/dist/app.jar" no funciona mejor. ¿Hay alguna solución para este problema? Gracias !

preguntado el 27 de julio de 12 a las 17:07

1 Respuestas

Usaré el complemento uber para hacer un jar ejecutable. con maven simplemente puede agregar

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <finalName>uber-${artifactId}-${version}</finalName>
            </configuration>
        </plugin>

revise aquí http://maven.apache.org/plugins/maven-shade-plugin/ esto creará un jar completamente autónomo con todos los recursos, clases y dependencias

Respondido 27 Jul 12, 18:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.