Lucas_Cavalcanti 1 de ago. de 2012
/***
* Copyright (c) 2011 Caelum - www.caelum.com.br/opensource
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package br.com.caelum.vraptor.plugin.hibernate4 ;
import java.net.URL ;
This file has been truncated. show original
muda o protected do método create pra public, e manda um pull request, plz
Nykolas_Lima 3 de ago. de 2012
Lucas Cavalcanti:
https://github.com/garcia-jj/vraptor-plugin-hibernate4/blob/master/src/main/java/br/com/caelum/vraptor/plugin/hibernate4/ConfigurationCreator.java
muda o protected do método create pra public, e manda um pull request, plz
Lucas,
Mudei e abri o pullrequest (https://github.com/garcia-jj/vraptor-plugin-hibernate4/pull/4 )
Não consegui rodar o pom.xml aqui, você sabe o que pode ser?
Reason : Cannot find parent : org . sonatype . oss : oss - parent for project : br . com . caelum . vraptor : vraptor - plugin - hibernate4 : jar : 1.0.1 - SNA
PSHOT for project br . com . caelum . vraptor : vraptor - plugin - hibernate4 : jar : 1.0.1 - SNAPSHOT
[ INFO ] ------------------------------------------------------------------------
[ INFO ] Trace
org . apache . maven . reactor . MavenExecutionException : Cannot find parent : org . sonatype . oss : oss - parent for project : br . com . caelum . vrapt
or : vraptor - plugin - hibernate4 : jar : 1.0.1 - SNAPSHOT for project br . com . caelum . vraptor : vraptor - plugin - hibernate4 : jar : 1.0.1 - SNAPSHOT
Caused by : org . apache . maven . project . ProjectBuildingException : POM 'org.sonatype.oss:oss-parent' not found in repository : Unable to
download the artifact from any repository
org . sonatype . oss : oss - parent : pom : 7
from the specified remote repositories :
dotsrc . org ( http : // mirrors . dotsrc . org / maven2 )
for project org . sonatype . oss : oss - parent
at org . apache . maven . project . DefaultMavenProjectBuilder . findModelFromRepository ( DefaultMavenProjectBuilder . java : 602 )
at org . apache . maven . project . DefaultMavenProjectBuilder . assembleLineage ( DefaultMavenProjectBuilder . java : 1373 )
... 17 more
Caused by : org . apache . maven . artifact . resolver . ArtifactNotFoundException : Unable to download the artifact from any repository
org . sonatype . oss : oss - parent : pom : 7
from the specified remote repositories :
dotsrc . org ( http : // mirrors . dotsrc . org / maven2 )
Lucas_Cavalcanti 3 de ago. de 2012
edite o pom.xml removendo a tag e tudo que tem nela… mas só da sua máquina
isso é pra gente conseguir fazer o release pro maven.
e obrigado pelo pull request
Nykolas_Lima 3 de ago. de 2012
Lucas Cavalcanti:
edite o pom.xml removendo a tag e tudo que tem nela… mas só da sua máquina
isso é pra gente conseguir fazer o release pro maven.
e obrigado pelo pull request ;)
Beleza!
E o .jar disponível no github já está atualizado com este pullrequest?
Lucas_Cavalcanti 3 de ago. de 2012
não… vou atualizar o jar do maven hoje a noite
Nykolas_Lima 3 de ago. de 2012
Você pode me avisar aqui quando atualizar, por favor?
Eu baixo ele através do próprio site no github, não uso maven no meu projeto…
garcia-jj 3 de ago. de 2012
Nykolas, tomei a liberdade de alterar outros métodos que estavam protected, pois acredito que eles dariam esse erro também.
Abraço
Lucas_Cavalcanti 3 de ago. de 2012
garcia-jj 3 de ago. de 2012
Nykolas_Lima 4 de ago. de 2012
Beleza!
Valeu Garcia e Lucas!
Nykolas_Lima 4 de ago. de 2012
Pessoal,
Agora ta faltando uma classe do VRaptor…
Sabem como arrumo?
java.lang.NoClassDefFoundError: Lbr/com/caelum/vraptor/environment/Environment
garcia-jj 4 de ago. de 2012
Você pode pegar o jar aqui: http://mvnrepository.com/artifact/br.com.caelum.vraptor/vraptor-environment/1.0.1
Ou se você usa o maven, esta dependência deveria vir por padrão.
Nykolas_Lima 4 de ago. de 2012
garcia-jj:
Você pode pegar o jar aqui: http://mvnrepository.com/artifact/br.com.caelum.vraptor/vraptor-environment/1.0.1
Ou se você usa o maven, esta dependência deveria vir por padrão.
Garcia,
Adicionei o jar que estava faltando e solucionou o problema.
Mas agora ao subir o servidor esta dando outro erro.
org . picocontainer . PicoLifecycleException : PicoLifecycleException : method ' public void br . com . caelum . vraptor . plugin . hibernate4 . ServiceRegistryCreator . create () ' , instance ' br . com . caelum . vraptor . plugin . hibernate4 . ServiceRegistryCreator @239 cd5f5 , 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
Estou configurando alguma coisa errada?
No meu DAO eu recebo uma Session do Hibernate no construtor.
Preciso configurar algo com o arquivo de Environment?
Nykolas_Lima 4 de ago. de 2012
Garcia,
O Configuration do Hibernate não está sendo injetado na classe ServiceRegistryCreator.
Sabe o que pode estar causando isso?
Nykolas_Lima 4 de ago. de 2012
Garcia e Lucas,
Acho que o problema acontecia poque o Configuration do Hibernate estava sendo injetado diretamente e não através do ConfigurationCreator.
Abri um pullrequest com a correção.
Os erros ao subir o servidor cessaram, mas ao tentar obter um SessionCreator na minha classe DAO eu recebo o seguinte erro:
org . picocontainer . injectors . AbstractInjector$UnsatisfiableDependenciesException : br . com . XDAO has unsatisfied dependency : class br . com . caelum . vraptor . util . hibernate . SessionCreator among unsatisfiable dependencies : [[ class br . com . caelum . vraptor . util . hibernate . SessionCreator ]] where org . picocontainer . DefaultPicoContainer @7 cbdb375 : 96 < I < org . picocontainer . DefaultPicoContainer @6 a69ed4a : 0 < I < org . picocontainer . DefaultPicoContainer @7 b34c5ff : 80 <| was the leaf container being asked for dependencies .
Porque ele não está conseguindo injetar o SessionCreator?
garcia-jj 4 de ago. de 2012
Você está usando o plugin errado.
Este package é do configurador do Hibernate 3.
Nykolas_Lima 4 de ago. de 2012
Não sei porque não estou conseguindo fazer o import da classe.
import br.com.caelum.vraptor.plugin.hibernate4.SessionCreator ;
só reconhece o este import, mas ai não acha a classe SessionCreator:
import br.com.caelum.vraptor.plugin.hibernate4. * ;
O pullrequest que eu fiz está certo?
[edit]
Eu gerei o jar pelo pom.xml e por algum motivo ele não trouxe as classes, ai não consigo importar o SessionCreator.
Como faço para gerar certo, Garcia?
garcia-jj 4 de ago. de 2012
O que você quer fazer exatamente? Porque você quer importar esta classe?
O correto e você somente colocar este jar no classpath, e usar direto a Session do Hibernate onde você precisar. Não é necessário usar nada deste plugin diretamente na tua aplicação.
Lembre-se de remover alguma referência que tenha do pacote br.com.caelum.vraptor.util.hibernate do teu web.xml.
Abraço
Nykolas_Lima 4 de ago. de 2012
garcia-jj:
O que você quer fazer exatamente? Porque você quer importar esta classe?
O correto e você somente colocar este jar no classpath, e usar direto a Session do Hibernate onde você precisar. Não é necessário usar nada deste plugin diretamente na tua aplicação.
Lembre-se de remover alguma referência que tenha do pacote br.com.caelum.vraptor.util.hibernate do teu web.xml.
Abraço
Você viu o pullrequest que eu fiz? Aquilo está correto?
Se eu subir a aplicação sem as alterações que eu fiz no pullrequest, ocorre um nullpointer na classe ServiceRegistryCreator (conforme eu mencionei em um post acima)
O que pode estar errado?
garcia-jj 4 de ago. de 2012
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.
Nykolas_Lima 4 de ago. de 2012
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.
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 @438346 a3 , 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?
garcia-jj 4 de ago. de 2012
Não deveria ser hibernate.cfg.xml?
Nykolas_Lima 4 de ago. de 2012
É 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.
garcia-jj 4 de ago. de 2012
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
garcia-jj 5 de ago. de 2012
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.
Nykolas_Lima 5 de ago. de 2012
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.
Disponibiliza o teu blank project, por favor, pra eu dar uma olhada…
garcia-jj 5 de ago. de 2012
Nykolas_Lima 5 de ago. de 2012
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?
garcia-jj 5 de ago. de 2012
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.
garcia-jj 5 de ago. de 2012