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.
