Ajuda para configuar Spring + hibernate + jsf  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

Bom dia...

Estou tentando integrar Spring 2.5 e hibernate 3 e jsf

e estou tendo problemas para fazer essa configuração... quando eu vou iniciar o TomCat 6 da um erro que,
no arquivo de configuração do Spring não consegue achar o persistence-unit do hibernate...

alguém sabe como pode ser feito essa configuração????

segue o erro...


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: No persistence unit with name 'ecommerce' found
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1336)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
...
Caused by: java.lang.IllegalArgumentException: No persistence unit with name 'ecommerce' found
at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainPersistenceUnitInfo(DefaultPersistenceUnitManager.java:371)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.determinePersistenceUnitInfo(LocalContainerEntityManagerFactoryBean.java:247)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:199)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:273)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1367)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1333)
... 30 more

Felipe Alves
[Email]
Javabuntu
GUJ Master
[Avatar]

Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline



neste seu erro, o spring está tentando acessar sua unidade de persistência 'ecommerce', e não está achando.

Seu persistence.xml realmente tem uma unidade de persistencia chamada 'ecommerce'?
se tiver ele não está achando o xml, onde você inseriu o persistence.xml?

SCJP 6
SCJD
SCWCD 5
Itil V2
[MSN]
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

sim.. esta acontecendo isso mesmo...
pois não sei como faço para arrumar... meu persistence.xml esta no META-INF.. é la que tem que ficar não??

Felipe Alves
[Email]
Javabuntu
GUJ Master
[Avatar]

Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline

alves.Felipe wrote:sim.. esta acontecendo isso mesmo...
pois não sei como faço para arrumar... meu persistence.xml esta no META-INF.. é la que tem que ficar não??


lá mesmo, e seu applicationContext está onde?

o name da persistence-unit confere com 'ecommerce'?

SCJP 6
SCJD
SCWCD 5
Itil V2
[MSN]
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

meu applicationContext.xml esta no WEB-INF...
sim esta com o mesmo nome..

cara deixa eu te falar uma coisa... eu tinha criado um projeto para deixar as entidades ,o dao e as interfaces...
e no meu projeto web eu adicionava esse modulo.. assim funcionava...

ai eu quero deixar tudo (entidades,dao,interface)no projeto web...ai eu só passei essas coisas(entidades,dao,interface) pro projeto web... adicionei o persitence.xml no Meta-inf ,e pra mim teoricamente estaria correto...???

sabe me dizer se eu deixar separado mesmo, é uma boa prática de programação?

Felipe Alves
[Email]
Javabuntu
GUJ Master
[Avatar]

Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline

alves.Felipe wrote:meu applicationContext.xml esta no WEB-INF...
sim esta com o mesmo nome..

cara deixa eu te falar uma coisa... eu tinha criado um projeto para deixar as entidades ,o dao e as interfaces...
e no meu projeto web eu adicionava esse modulo.. assim funcionava...

ai eu quero deixar tudo (entidades,dao,interface)no projeto web...ai eu só passei essas coisas(entidades,dao,interface) pro projeto web... adicionei o persitence.xml no Meta-inf ,e pra mim teoricamente estaria correto...???

sabe me dizer se eu deixar separado mesmo, é uma boa prática de programação?


não é uma boa prática, é uma excelente prática!

porquê?

imagine que você automaticamente você fica impossibilitado de criar algumas dependências, porque tudo estará num jar.

Agora imagine que agora o sistema não vai mais ser o web, e sim destop, concorda que agora é só pegar o mesmo jar, e construir as views em swuing, essa outra parte não mudará nada, esse jar não precisa saber onde será usada e já vai estar compilado.

Eu usei spring + jsf + hibernate num projeto bem grande, e utilizamos exatamente assim em módulos separados depois gerados o .jar e adicionados na lib do web.

faça isso.

mas ai antes de gerar o jar, faça pelo menos os testes unitarios em TODOS os métodos pra garantir que eles estarão 100% funcionando.

SCJP 6
SCJD
SCWCD 5
Itil V2
[MSN]
javamaniaco
Java Ninja

Membro desde: 04/04/2007 19:21:36
Mensagens: 268
Offline

Cara, num sei se ajuda, mas tem o livro do autor Edson que ele disponibiliza o projeto para download:

http://www.integrator.com.br/download_gratis/projeto_livro_dominando_javaserver_faces_facelets_spring_hibernate_jpa.zip

Dá uma olhada lá que se parece muito com o que está fazendo, isso é, se num for o mesmo.

Boa sorte

"Iniciante sim, mas ignorante jamais."

"Seu corpo não pode estar onde sua mente SUBCONSCIENTE nunca esteve. Aprenda a leva-la até lá."
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

então... vou deixar separado mesmo então... que pelo menos funciona. hehe

e maniaco... estou baixando o exemplo... mas estou seguindo o exemplo do livro dele mesmo..."Dominando JSF e Facelets, utilizando Spring 2.5, Hibernate e JPA"...

mas valeo pelas dicas..
abraco

Felipe Alves
[Email]
javamaniaco
Java Ninja

Membro desde: 04/04/2007 19:21:36
Mensagens: 268
Offline

Já terminei esse livro. Muito bacana o projeto, realmente deu uma noção das tecnologias na prática.
Qualquer coisa, podemos trocar idéia.

"Iniciante sim, mas ignorante jamais."

"Seu corpo não pode estar onde sua mente SUBCONSCIENTE nunca esteve. Aprenda a leva-la até lá."
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

javamaniaco...

vc chegou a fazer outro projeto com base no livro??
tenho problemas para usar o fetch=FetchType.LAZY

da a seguinte msg:

sabe pq ele diz no Session??

Felipe Alves
[Email]
javamaniaco
Java Ninja

Membro desde: 04/04/2007 19:21:36
Mensagens: 268
Offline

alves.Felipe wrote:javamaniaco...

vc chegou a fazer outro projeto com base no livro??
tenho problemas para usar o fetch=FetchType.LAZY

da a seguinte msg:

sabe pq ele diz no Session??

Cara, desculpa ter visto somente agora sua mensagem. Estive de férias e longe do mundo .
Bom, isso ocorre porque você não configurou a sessão do Hibernate para ser aberta na view. Após uma transação, ela se fechou e vc a perdeu.
No Spring, nossa, super fácil, ele gerencia isso pra vc. Mas dá pra fazer sem o Spring (no livro não se usa o Spring apenas pra isso), usando Filtro, Listener ou PhaseListener do JSF.
Depois do livro, onde estou trabalhando, já fizemos 1 projeto usando como base o conhecimento adquirido.

"Iniciante sim, mas ignorante jamais."

"Seu corpo não pode estar onde sua mente SUBCONSCIENTE nunca esteve. Aprenda a leva-la até lá."
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

então... eu vi por ai que isso é problema de configuração de sessão...
mas o exemplos que vi são diferentes dos livros...(eles abrem e fecham a sessão manualmente...)

no nosso caso o Spring gerencia.. como vc falou.... mas então.. como, onde posso fazer alguma coisa para ele "consertar" essa sessão?!!?
eu tb fiz um projeto... e esta pipocando nisso...

valeo
abraco

Felipe Alves
[Email]
javamaniaco
Java Ninja

Membro desde: 04/04/2007 19:21:36
Mensagens: 268
Offline

alves.Felipe wrote:então... eu vi por ai que isso é problema de configuração de sessão...
mas o exemplos que vi são diferentes dos livros...(eles abrem e fecham a sessão manualmente...)

no nosso caso o Spring gerencia.. como vc falou.... mas então.. como, onde posso fazer alguma coisa para ele "consertar" essa sessão?!!?
eu tb fiz um projeto... e esta pipocando nisso...

valeo
abraco

Tem um e-mail fácil ai pra mim te mandar um PDF? Eu também num sabia, mas fui perguntar ao autor Edson, já que fiquei curioso, e ele me mandou um PDF que o cara faz um exemplo com JSF e Hibernate, mas sem Spring, é o que você quer, certo?

"Iniciante sim, mas ignorante jamais."

"Seu corpo não pode estar onde sua mente SUBCONSCIENTE nunca esteve. Aprenda a leva-la até lá."
alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

manda ai : anthaule@gmail.com

qq coisa volto a te enxer o saco... hehe
valeo

Felipe Alves
[Email]
marcelogomesrp
JavaGuru

Membro desde: 16/01/2007 15:16:56
Mensagens: 211
Localização: Ribeirão Preto
Offline

Pessoal,

Estou seguindo o mesmo livro e estou tendo a mesma dificuldade. do Lazy.

Como foi solucionado ???


No livro ele diz na página 181 que colocando o filtro já resolveria este problema.

[code]

<filter>
<filter-name>openEntityManager</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>openEntityManager</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

[code]


mas comigo não esta funcionando, recebo o erro

org.hibernate.LazyInitializationException: could not initialize proxy - no Session


Gostária de mater o spring trantando isso.


Obrigado

Marcelo Gomes

This message was edited 1 time. Last update was at 06/02/2010 11:32:33


Marcelo Gomes
--
http://marcelogomesrp.blogspot.com/
[WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team