Obtendo "Não é possível abrir a entrada comprimido nested" ao fazer uso de WarLauncher para a execução de um arquivo de guerra fora do servlet container

votos
0

Estou implementando um arquivo de guerra que devem apoiar a execução de duas maneiras diferentes:

  1. Dentro Servlet Container - por implantá-lo no Tomcat ou Jetty.
  2. 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.

Publicado 27/11/2013 em 11:08
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Existem algumas restrições com o formato de arquivo ZIP subjacentes que tornam impossível para os WarLauncher(e amigos) para carregar recursos de aninhados compactados arquivos. No entanto você estava construindo seu arquivo WAR que você precisa para voltar a fazer esse passo e assegurar que os JARs aninhados não são compactados. Em seguida, ele deve funcionar. (E se você usar as configurações padrão para um Maven guerra construir também iria funcionar.)

Respondeu 27/11/2013 em 11:12
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more