[RESOLVIDO] Duvida: VRaptor3 + GAE + JdoTemplate  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Boa tarde galera!

Tenho um projeto com VRaptor 3 no Google App Engine, e estou usando alguns componentes do Spring, mas estou com problemas com o JdoTemplate. Criei a ComponentFactory adequada, e utilizando o PersistenceManager funciona, mas para o JdoTemplate ainda estou pesquisando a razão do problema. Segue a exception gerada:
Qualquer sugestão é bem vinda! Obrigado!

This message was edited 1 time. Last update was at 20/05/2010 16:51:55


É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

vc tá usando o template fora de transações?

--
Caelum
www.caelum.com.br

von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Oi Lucas,

Sim, na verdade, só testei seu uso para buscas simples, como
e em qualquer situação tomo esse erro.

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Estava lendo sobre a integração entre VRaptor e Spring, e li que para usar os componentes do Spring eu preciso do applicationContext.xml e configurar lá os componentes. No meu sistema tentei prover o JdoTemplate da seguinte forma:
O JdoTemplate precisa do PersistenceManagerFactory, o qual consigo sem o Spring. Por fazer dessa forma que esse problema ocorre?
Obrigado!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

pq o spring controla várias coisas usando estruturas internas dele, então se vc não usar o jeito dele de criar as classes, ele pode não configurar alguma coisa...

tenta usar o jdotemplate do jeito do spring, configurando no applicationContext.xml que provavelmente vai funcionar

--
Caelum
www.caelum.com.br

von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Lucas, fiz da forma que você sugeriu:

applicationContext:
Com isso o Spring já injeta o JdoTemplate no meu dao, pelo construtor. Mas, ao buscar alguma coisa, como:
Isso gera a seguinte exceção:Sabe o qual pode ser a razão do problema? Vlw!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

tenta usar esse filtro:
http://static.springsource.org/spring/docs/1.1.x/api/org/springframework/orm/jdo/support/OpenPersistenceManagerInViewFilter.html

--
Caelum
www.caelum.com.br

von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Lucas,

Anotei o método com @Transactional(readOnly = true) e funcionou:
Só fiquei curioso, pq acho que não deveria ter essa necessidade, mas resolveu!

Obrigado!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

verdade, tinha esquecido disso

o template só funciona dentro de uma transação...
pq senão o spring não sabe qdo abrir e fechar o object manager

--
Caelum
www.caelum.com.br

von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Acho que tô muito acostumado com o Spring gerenciando tudo por mim, e esqueci que usando outras ferramentas às vezes é necessário fazer coisas assim eu mesmo!

Muito obrigado pela ajuda!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

mesmo se vc usasse spring puro vc precisaria colocar a chamada ao jdoTemplate dentro de uma transação... ou com @Transactional ou com o Open*InViewFilter... mesma coisa pra JPA ou Hibernate

--
Caelum
www.caelum.com.br

von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Aqui temos um projeto com Spring + Hibernate em que nas classes Dao não é usada a anotação @Transactional,nem o Open*..., apenas a configuração que injeta o hibernateTemplate nos Daos. Lembro de ter lido, acho que no Spring in Action, que as classes Daos, quando recebem o template, ou quando herdam de DaoSupport, seus métodos passam a ser transacionais.

Vou procurar, se achar posto aqui!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team