Vraptor 2 + método ajax

2 respostas
macspace

Olá pessoal,
talvez minha dúvida seja recorrente, tentei buscar por suloções ou mensagens com problemas parecidos e não achei nada!!!

vamos lá:
tenho um método em uma lógica com @Remotable, porém quando vou chamar ele, ele fica dando erro no JSON, vou postar abaixo meus códigos:

ClienteLogic

@Component
@InterceptedBy({LoginInterceptor.class, DaoInterceptor.class})
public class ClienteLogic {
	
	private final DaoFactory daoFactory;
	private final VisaoTILogic logic;
	private final CidadeLogic logicCidade;
	
	private ClienteBean cliente = new ClienteBean();

	private List<ClienteBean> clientes;

	private List<CidadeBean> cidades;
	
	public ClienteLogic(DaoFactory daoFactory) {
		this.daoFactory = daoFactory;
		logic = new VisaoTILogic(daoFactory, ClienteBean.class);
		logicCidade = new CidadeLogic(daoFactory);
		logicCidade.setPageSize(-1);
		logicCidade.loadAll(null, null, null, "descricao");
		cidades = logicCidade.getCidades();
	}
	
	
	@Remotable
	public void procuraCliente(@Parameter(key="codigo") String codigo) {
		cliente = (ClienteBean) logic.get(Integer.parseInt(codigo));
	}

	public ClienteBean getCliente() {
		return cliente;
	}
	
	public List<ClienteBean> getClientes() {
		return clientes;
	}
	
	public List<CidadeBean> getCidades() {
		return cidades;
	}
	public void formulario() {
	}
}

Script que chama a lógica

function getClienteFantasia(id) {
	$.ajax( {
		url: 'cliente.procuraCliente.ajax.logic',
		data: {codigo:id},  
		success: function(data) {
			var jsonObject = eval('(' + data.responseText + ')');
			var html = "";
			html += jsonObject.cliente.nomeFantasia;
			return html;
		}
	});
}

saída de erro no console:

java.lang.RuntimeException: Cannot render object org.hibernate.impl.SessionFactoryImpl@1ed54a0 as JSON
	at org.vraptor.remote.json.JSONWriter.serializeBean(JSONWriter.java:107)
	at org.vraptor.remote.json.JSONWriter.delegateToProperSerializeMethod(JSONWriter.java:85)
	at org.vraptor.remote.json.JSONWriter.writeProperty(JSONWriter.java:118)
	at org.vraptor.remote.json.JSONWriter.serializeBean(JSONWriter.java:98)
	at org.vraptor.remote.json.JSONWriter.delegateToProperSerializeMethod(JSONWriter.java:85)
	at org.vraptor.remote.json.JSONWriter.writeProperty(JSONWriter.java:118)
	at org.vraptor.remote.json.JSONWriter.serializeBean(JSONWriter.java:98)
	at org.vraptor.remote.json.JSONWriter.delegateToProperSerializeMethod(JSONWriter.java:85)
	at org.vraptor.remote.json.JSONWriter.writeProperty(JSONWriter.java:118)
	at org.vraptor.remote.json.JSONWriter.serializeBean(JSONWriter.java:98)
	at org.vraptor.remote.json.JSONWriter.delegateToProperSerializeMethod(JSONWriter.java:85)
	at org.vraptor.remote.json.JSONWriter.serializeMap(JSONWriter.java:128)
	at org.vraptor.remote.json.JSONWriter.delegateToProperSerializeMethod(JSONWriter.java:75)
	at org.vraptor.remote.json.JSONWriter.write(JSONWriter.java:48)
	at org.vraptor.remote.json.JSONSerializer.serialize(JSONSerializer.java:20)
	at org.vraptor.view.RemoteViewManager.forward(RemoteViewManager.java:53)
	at org.vraptor.interceptor.ViewInterceptor.intercept(ViewInterceptor.java:36)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.OutjectionInterceptor.intercept(OutjectionInterceptor.java:36)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:38)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:130)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:57)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at br.com.visaoti.estacaotim.logic.DaoInterceptor.intercept(DaoInterceptor.java:17)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at br.com.visaoti.estacaotim.logic.LoginInterceptor.intercept(LoginInterceptor.java:27)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
	at org.vraptor.core.DefaultController.execute(DefaultController.java:46)
	at org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
	at org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)
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.vraptor.remote.json.JSONWriter.serializeBean(JSONWriter.java:97)
	... 52 more
Caused by: org.hibernate.HibernateException: No CurrentSessionContext configured!
	at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:572)
	... 57 more

2 Respostas

Lavieri

na anotação do remotable, coloca depth = 2 (não sei se escrevi certo, mas so tem uma propriedade la)

Aparentemente o JSon ta ido muito fundo nos seus objetos e chegando ate a SessionFactory

macspace

@Lavieri, valeu cara!!!

Funcionou belezinha!!!
abraços!!!

Criado 19 de outubro de 2009
Ultima resposta 19 de out. de 2009
Respostas 2
Participantes 2