| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/02/2010 20:39:37
|
faroestecaboclo
Thread.start()
![[Avatar]](/images/avatar/4530de238502b5aee3ad8eec65a4a70f.jpg)
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.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/02/2010 21:18:30
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2010 10:59:20
|
faroestecaboclo
Thread.start()
![[Avatar]](/images/avatar/4530de238502b5aee3ad8eec65a4a70f.jpg)
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.
|
|
|
 |
|
|
|
|