Não é necessário fazer o que está no pull request. Se você rodar a classe PluginTest verá que o plugin funciona sem aquela linha.
Como eu te disse anteriormente, no teu projeto está sendo usado o plugin errado, pois veja no stacktrace o pacote que está sendo usado:
Além disso, você não deve injetar o SessionCreator, mas sim somente o Session do Hibernate 4.
[quote=garcia-jj]Não é necessário fazer o que está no pull request. Se você rodar a classe PluginTest verá que o plugin funciona sem aquela linha.
Como eu te disse anteriormente, no teu projeto está sendo usado o plugin errado, pois veja no stacktrace o pacote que está sendo usado:
Além disso, você não deve injetar o SessionCreator, mas sim somente o Session do Hibernate 4.[/quote]
Já arrumei o import que você falou.
Estou injetando diretamente a Session do Hibernate.
Mas ao tentar subir o aplicativo retorna o seguinte erro:
org.picocontainer.PicoLifecycleException: PicoLifecycleException: method 'public void br.com.caelum.vraptor.plugin.hibernate4.ServiceRegistryCreator.create()', instance 'br.com.caelum.vraptor.plugin.hibernate4.ServiceRegistryCreator@438346a3, java.lang.reflect.InvocationTargetException
at org.picocontainer.lifecycle.JavaEE5LifecycleStrategy.doLifecycleMethod(JavaEE5LifecycleStrategy.java:75)
at org.picocontainer.lifecycle.JavaEE5LifecycleStrategy.doLifecycleMethod(JavaEE5LifecycleStrategy.java:54)
at org.picocontainer.lifecycle.JavaEE5LifecycleStrategy.start(JavaEE5LifecycleStrategy.java:41)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
at org.picocontainer.behaviors.Stored.start(Stored.java:110)
at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1005)
at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:998)
at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:756)
at br.com.caelum.vraptor.ioc.pico.PicoProvider.start(PicoProvider.java:106)
at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:108)
at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:102)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4562)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5240)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5235)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.picocontainer.lifecycle.JavaEE5LifecycleStrategy.doLifecycleMethod(JavaEE5LifecycleStrategy.java:69)
... 24 more
Caused by: java.lang.NullPointerException
at br.com.caelum.vraptor.plugin.hibernate4.ServiceRegistryCreator.create(ServiceRegistryCreator.java:53)
... 29 more
Meu hibernate.config.xml está na pasta src/development e tenho um arquivo development.properties com a chave development_environment = true.
O que pode estar causando o erro acima?
Não deveria ser hibernate.cfg.xml?
É isso mesmo…só escrevi errado no post.
hibernate.cfg.xml
Não sei mais como tentar solucionar este erro.
Já adicionei no web.xml o trecho:
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>
br.com.caelum.vraptor.plugin.hibernate4
</param-value>
</context-param>
Mas msm assim o erro persiste.
Fiz um teste aqui, e esse erro acontece quando o plugin não acha o hibernate.cfg.xml. Verifique se o teu está no local correto, se o environment está correto, etc…
Posteriormente podemos fazer um tratamento para ele ver se encontrou o arquivo correto, e mostrar uma mensagem de log mais amigável.
Abraço
Criei aqui um blank project que está funcionando, se você quiser para comparar com o seu, me avise que posso disponibilizar.
Basicamente atente para que o hibernate.cfg.xml esteja corretamente nos locais certos conforme o ambiente development/production, etc, conforme o environment. Caso você não queria usar o environment, coloque o hibernate.cfg.xml direto no raíz do classpath.
[quote=garcia-jj]Criei aqui um blank project que está funcionando, se você quiser para comparar com o seu, me avise que posso disponibilizar.
Basicamente atente para que o hibernate.cfg.xml esteja corretamente nos locais certos conforme o ambiente development/production, etc, conforme o environment. Caso você não queria usar o environment, coloque o hibernate.cfg.xml direto no raíz do classpath.[/quote]
Disponibiliza o teu blank project, por favor, pra eu dar uma olhada…
Garcia,
Meu projeto está na mesma estrutura que o seu e mesmo assim continua o erro de NullPointer.
Será que pode ser algum jar faltando?
Depende o que você diz com “a mesma estrutura”.
O NullPointerException é quando ele não acha o hibernate.cfg.xml. Se está dando este erro, é porque ele não está encontrando o arquivo. Verifique o local, veja se ele está sendo copiado corretamente para o WEB-INF/classes. Caso você estiver usando o environment verifique que você criou corretamente os diretórios para o ambiente development/production, etc.
Outra coisa, verifique as versões dos jars. Talvez você possa estar com algum jar do Hibernate 3 ao invés do 4. Compare com os da minha aplicação.