Java Web Start - Descompactando o conteúdo do JAR  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
faroestecaboclo
Thread.start()
[Avatar]

Membro desde: 22/08/2006 14:28:55
Mensagens: 35
Offline

Olá.

Possuo uma aplicação web que deve rodar, as vezes, de maneira offline (em notebooks de consultores externos e tals).
Pra isso, estou utilizando uma versão embbeded do Tomcat. Esta minha aplicação acessa um diretorio /web com o conteudo e um /conf com as configurações do Tomcat.
Consegui resolver o problema do banco usando o H2 embbeded tbm... fazendo sincronia depois com o BD online e tals... enfim, funciona.

Assim sendo, eu queria utilizar o Java Web Start para distribuir esta aplicação (pelas vantagens de manter os clients atualizados facilmente, de o JWS já fazer as verificações de JRE, etc).
Pelo que pesquisei, o JWS permite apenas que vc publique os JARs para executar, e não estes demais diretórios que meu server precisa.
Assim sendo, eu pensei em colocar estes diretórios dentro do JAR, e qdo eu invocar minha classe Main, ela descompactaria estes diretórios para uma pasta temporaria.

Eu já fiz alguns testes... assinei todos os meus JARs... criei diretórios e arquivos de teste em System.getProperty("java.io.tmpdir");, etc.
A minha dificuldade está em acessar este diretorio de dentro do meu proprio JAR para descompactá-lo, utilizando o ZipFile ou algo assim...

Tentei passar o getClass().getClassLoader().getResource("XX").toURI() pro construtor do ZipFile, mas a URL aparece como "localhost:8080 .... " qdo executado pelo JWS... e assim o construtor não funciona...

Eu ate poderia colocar estes arquivos e diretorios em outro JAR fora da minha aplicação, mas ainda assim não sei como encontrá-la usando o JWS...

Alguma luz, ou algo diferente que eu não tenha pensado?
Ou será que existe alguma maneira de conseguir o Real Path (c:/algumacoisa/app.jar) deste meu JAR atraves de minha classe que está dentro dele?

Desde já, agradeço.
[WWW]
rimarck
Entusiasta Java

Membro desde: 29/05/2008 12:06:04
Mensagens: 15
Localização: São Paulo / Goiânia
Offline

Ja tive este problema tambem...tenta usar getClass().getClassLoader().getResourceAsStream("XXX"), como abaixo :



Flws.

Rimarck Vieira de Carvalho Junior
[Email]
faroestecaboclo
Thread.start()
[Avatar]

Membro desde: 22/08/2006 14:28:55
Mensagens: 35
Offline

Então...

eu já havia tentado com o ClassLoader... mas não estava conseguindo utilizar os resources, pra fazer outputstream pq estavam como diretórios dentro do JAR, e não arquivos.

acho q o problema é que eu estava o dia de ontem inteiro bitolado nisso, e não enxerguei uma solução pra resolver...
hoje pela manhã, em alguns minutos com a mente mais leve, consegui resolver meu problema...

usando o ClassLoader, eu consegui carregar um arquivo ZIP que adicionei ao meu JAR, através do ZipInputStream.
agora está funcionando blzinha...

Caso alguem precise, minha estrutura ficou + ou - assim:




dae na minha classe Tomcat55, fiz algo assim:



so dar uma estudada melhor no JWS pra otimizar a atualização de versões e tals agora... separar melhor os resources e coisas do tipo...

vlw a ajuda.
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team