Estou implementando um arquivo de guerra que devem apoiar a execução de duas maneiras diferentes:
- Dentro Servlet Container - por implantá-lo no Tomcat ou Jetty.
- Fora Servlet Container - executá-lo a partir do prompt de comando e não usando qualquer servlet container embutido. Isso é necessário para ser suportado como parte do arquivo de guerra.
Eu encontrei componente Primavera Boot Loader mais relevante para o cumprimento de # 2. Eu tentei usá-lo manualmente antes de integrá-lo com Maven. Eu segui a seção - 'estrutura arquivo WAR' como mencionado como por esta documentação. Consulte a seção 'estrutura arquivo WAR'.
Eu segui os passos seguintes. Eu criei o arquivo de guerra. Eu abriu o zíper e, em seguida, adicionar todos os arquivos de classe do carregador de inicialização primavera em sua raiz. Eu adicionei entradas apropriadas para o arquivo de manifesto para fazer o executável guerra. Em seguida, fechou-o e renomeado de volta de volta para o arquivo de guerra originais. Quando eu executado com comando - Java mywar.war -jar, ele falhou com a seguinte exceção:
java.lang.IllegalStateException: Unable to open nested compressed entry WEB-INF/lib/spring-core-3.1.2.RELEASE.jar
at org.springframework.boot.loader.jar.JarFile.getNestedJarFileFromFileEntry(JarFile.java:330)
at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:305)
at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:87)
at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:74)
at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:78)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:52)
at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:79)
Ele está dando erro não só para jar específico, mas para todos os arquivos jar. Eu acho, que também irá falhar quando eu automatizar os passos acima com Maven.
Obrigado.













