Pessoal,
Estou com o seguinte problema:
Temos uma aplicação que utiliza Hibernate e é carregado pelo jws. Acontece que quando o servidor onde está o arquivo .jnlp fica off line ou a máquina onde a aplicação foi previamente instalada fica sem conexão de rede, por algum motivo o hibernate levanta a seguinte exceção : “net.sf.ehcache.CacheException: Cannot configure CacheManager”
ps: Quando a conexão com o servidor está ok, o sistema funciona normalmente
Alguém sabe o que pode estar acontecendo?
Obrigado,
ANderson
Quando fica sem conexão de rede, tu diz sem acesso ao banco de dados? Ai não funciona mesmo.
Agora se for apenas o server que está o .jnlp (suportamente diferente do banco de dados), não vejo
motivo para não funcionar, coloca mais informações da exception pra gente ver.
É apenas quando o servidor onde está o JNLP fica fora de acesso…
Uma coisa que descobri agora é que o problema não ocorre quando utilizo o sistema pelo Linux, apenas no WINXP…
Pode ter algo a ver com a autenticação? Pois no Linux aparece uma janela informando que não foi possível autenticar a aplicação(certificado digital) e me dá a opção de continuar…já no Win, o sistema simplesmente apresenta o seguinte erro:
2009-09-25T18:05:07 [0] ERRO Exceção ao iniciar aplicação ESafira. Aplicação será abortada.
==> net.sf.ehcache.CacheException: Cannot configure CacheManager: C:\temp\aplicacao\Distribuicoes\Versoes\1.5\eSafira_1_5_gestor.jar (O sistema não pode encontrar o caminho especificado)
SEVERE: 2009-09-25T18:05:07 [0] ERRO Exceção ao iniciar aplicação ESafira. Aplicação será abortada.
==> net.sf.ehcache.CacheException: Cannot configure CacheManager: C:\temp\aplicacao\Distribuicoes\Versoes\1.5\eSafira_1_5_gestor.jar (O sistema não pode encontrar o caminho especificado)
org.hibernate.cache.CacheException: net.sf.ehcache.CacheException: Cannot configure CacheManager: C:\temp\aplicacao\Distribuicoes\Versoes\1.5\eSafira_1_5_gestor.jar (O sistema não pode encontrar o caminho especificado)
at org.hibernate.cache.EhCacheProvider.start(EhCacheProvider.java:134)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:174)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1145)
at br.gov.serpro.jserpro.persistencia.HibernateUtil.<init>(HibernateUtil.java:71)
at br.gov.serpro.esafira.app.ESafiraApp.iniciaHibernate(ESafiraApp.java:333)
at br.gov.serpro.jserpro.app.JSerproApp.configura(JSerproApp.java:248)
at br.gov.serpro.esafira.app.ESafiraApp.configura(ESafiraApp.java:284)
at br.gov.serpro.esafira.app.ESafiraApp.<init>(ESafiraApp.java:275)
at br.gov.serpro.esafira.app.ESafiraApp.main(ESafiraApp.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: net.sf.ehcache.CacheException: Cannot configure CacheManager: C:\temp\aplicacao\Distribuicoes\Versoes\1.5\eSafira_1_5_gestor.jar (O sistema não pode encontrar o caminho especificado)
at net.sf.ehcache.CacheManager.configure(CacheManager.java:170)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:138)
at net.sf.ehcache.CacheManager.create(CacheManager.java:193)
at org.hibernate.cache.EhCacheProvider.start(EhCacheProvider.java:130)
… 19 more
É, pouco mexi com JWS, mas o pouco que vi ele baixa as libs a primeira vez, então teoricamente dá pra executar
offline, agora pq diabos ele não está achando essa lib:
C:\temp\aplicacao\Distribuicoes\Versoes\1.5\eSafira_1_5_gestor.jar
Que caminho é esse? Não me parece ser o caminho default onde o JWS baixa as libs, ou é?
Na verdade este caminho ai é como se fosse o servidor…mas aqui eu coloquei no meu sistema local mesmo, e depois deletei esta pasta para "simular" o caso que o sistema esta sem rede…
Por exemplo, eu instalei o sistema a partir de C:\temp\aplicacao\jnlp.php\esafira.jnlp…e tudo funcionou ok até que eu apaguei esta pasta aí…que é onde o JWS "procura" novas versões…Conforme o arquivo esafira.jnlp que segue:
<?xml version=“1.0” encoding=“ISO-8859-1”?>
<jnlp spec=“0.2 1.0” codebase=“file:///C:\temp\aplicacao” href=“jnlp.php/esafira.jnlp”>
<security>
<all-permissions/>
</security>
<information>
…
…
…
Entendeste?
Então acho que não deves remover nada da pasta.
Deixe o server do JWS fora do ar e execute a aplicação com o conteúdo dessa pasta já populada.
Se removeres, o JWS não vai ter como baixar.
Então, esta pasta na verdade é meu servidor…mas esta na minha máquina local…mas isso é a principio abstraido…Pq a pasta que o JWS baixa o s arquivos é outra…uma pasta de sistema lá no java…
Chute mode on:
Sim, é nesta pasta que o JWS baixa a aplicação. Na primeira execução baixa tudo, da
segunda em diante ele percebe se tem algum .jar atualizado e então baixa a atualização.
Se estiver offline ele simplesmente não vai no server para ver se houve atualizações e
executa a versão previsamente baixada.
Deve ser algo por ai.
Sim, acho que é algo por ai…mas a questão é: Por que diabos o hibernate não funciona quando o servidor do JNLP não está funcionando???
Como eu verifico o log do JWS? alguém tem a luz?
A exception dada é clara
org.hibernate.cache.CacheException: net.sf.ehcache.CacheException: Cannot configure CacheManager: C:\temp\aplicacao\Distribuicoes\Versoes\1.5\eSafira_1_5_gestor.jar (O sistema não pode encontrar o caminho especificado)
Ou seja, o arquivo em questão não existe. Tente fazer um teste com esse arquivo por lá pra ver
que acontece.