| Autor |
Mensagem |
|
|
|
me descreve por favor os passos que acontecem nessa lógica pra eu ver o que pode estar acontecendo. não precisa ter a sua lógica da aplicação, mas as interações com o vraptor
|
 |
|
|
|
consegue isolar quando acontece o problema? é em alguma lógica específica ou é aleatoriamente?
|
 |
|
|
br.com.caelum.vraptor.ioc.guice.SessionScopeListener
vc registrou esse listener, mas ele só é necessário qdo vc tá usando o guice.
|
 |
|
|
dúvidas:
-vc executa alguma tarefa em threads separadas da requisição?
- esse nullPointer acontece em algum forward?
|
 |
|
|
|
isso é no getter da session provavelmente.... vc faz algum session.invalidate() ?
|
 |
|
|
|
mas não funcionou? o spring não abriu e fechou as sessions?
|
 |
|
|
Caused by: java.lang.ClassNotFoundException: com.google.inject.Module
vc tá com o jar do guice no classpath? o guice na versão certa?
|
 |
|
|
sim... mas eu quero ver se é um bug do lado do vraptor...
o spring gerencia o pre-destroy, no guice a gente tá fazendo isso na mão do lado do vraptor.
|
 |
|
|
|
Não lembro se vc já fez esse teste, mas funciona se vc trocar o guice pelo spring?
|
 |
|
|
sim, só trocar os jars...
|
 |
|
|
se vc preferir mudar pro guice, aqui parece mais fácil:
http://code.google.com/p/google-guice/wiki/AOP
daí ao invés de escrever xml, vc cria uma classe java pro module do guice e faz o bindInterceptor pra sua anotação.
|
 |
|
|
tb é só usar uma anotação (@Aspect)... só precisa da pré-configuração de aspectos do spring tb
|
 |
|
|
http://static.springsource.org/spring/docs/3.0.7.RELEASE/reference/html/aop.html
pra usar com o vraptor, crie um applicationContext.xml no classpath (src ou src/main/resources)
basicamente vc vai precisar declarar o namespace do aop no xml do spring, colocar o <aop:aspectj-autoproxy/> e declarar o bean
<bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />
também precisa das libs aspectjweaver.jar e aspectjrt.jar
e daí é só criar a classe:
se quiser fazer algo só antes, pode usar o @Before, e se for só depois o @After
|
 |
|
|
ao invés de dar erro 500 vc quer fazer o que? erro de validação?
vc pode fazer um try...catch num interceptor e fazer o que vc quer...
só cuidado pq a exception pode estar encapsulada dentro de um InterceptionException
|
 |
|
|
|
esse Results.json() já seta o content-type pra "application/json", do jeito que tem que ser =)
|
 |
|
|