Continuando com os testes, configurei eclipselink 2.5 +
vraptor-jpa-4.0.RC2 e o acesso ao banco de dados está funcionando
corretamente.
Estou encontrando erro ao tentar executar o seguinte:
@Path("/cliente/{codcliente}")
public void cliente(Integer codcliente) {
Cliente cliente = manager.find(Cliente.class, codcliente);
result.use(json()).from(cliente, "cliente").serialize();
}
Classe Cliente é um simples POJO com atributos Integer codcliente e
String nome, a listagem funciona normal então não é um problema com o
jpa ou banco de dados.
A parte que interessa do erro:
mai 09, 2014 4:22:28 AM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [default] in context with path
[/logist] threw exception
br.com.caelum.vraptor.InterceptionException:
br.com.caelum.vraptor.InterceptionException:
org.jboss.weld.exceptions.IllegalArgumentException: WELD-001456:
Argument bean must not be null
at
br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:68)
at
br.com.caelum.vraptor.interceptor.StepInvoker.tryToInvoke(StepInvoker.java:54)
at
br.com.caelum.vraptor.interceptor.StepInvoker$Proxy$_$$_WeldClientProxy.tryToInvoke(Unknown
Source)
at
br.com.caelum.vraptor.interceptor.InterceptorExecutor.executeAround(InterceptorExecutor.java:75)
Caused by: br.com.caelum.vraptor.InterceptionException:
org.jboss.weld.exceptions.IllegalArgumentException: WELD-001456:
Argument bean must not be null
at
br.com.caelum.vraptor.observer.ExecuteMethod.execute(ExecuteMethod.java:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at
br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:63)
... 44 more
Caused by: org.jboss.weld.exceptions.IllegalArgumentException:
WELD-001456: Argument bean must not be null
at
org.jboss.weld.util.Preconditions.checkArgumentNotNull(Preconditions.java:40)
at
org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:751)
at
org.jboss.weld.util.ForwardingBeanManager.getReference(ForwardingBeanManager.java:61)
Ou seja, ao que parece não está populando o atributo "codcliente"
do método. O que eu pensei que pudesse estar ocorrendo é algum problema
com a validação, mas o arquivo validation.xml foi colocado no lugar
certo, conforme a documentação e imagem do target gerado pelo maven
http://postimg.org/image/y291egn57/
Não existe neste projeto de exemplo, nenhum interceptor criado que
não sejam os padrões do vraptor e vraptor-jpa. A compilação está sendo
feita com o debug info ativado.
Caso alguém tenha alguma ideia do que esteja acontecendo fico
agradecido. Este é um dos testes que funcionava corretamente na versão
RC e deixou de funcionar na versão final.
--
Shander Lyrio