Problemas no DWR

Olá Galera, sou relativamente novo no forum, estou com uma duvida sobre o DWR que está “empacando” o projeto da empresa que trabalho
Estou fazendo a interação entre busca de clientes de um pedido de venda pelo DWR, o que acontece é que ao chamar o metodo de busca e formação de lista para
o combo box, o Metodo da uma falha
Abaixo a configuração do dwr.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

[/code]

Codigo do metodo de busca da lista:

[code]package usesoft.gn;

import java.util.List;
import javax.servlet.http.HttpSession;
import org.hibernate.Session;
import org.hibernate.Transaction;
import usesoft.entidades.Cliente;
import usesoft.entidades.Produto;
import usesoft.entidades.Registro;
import usesoft.persistencia.ClienteDAO;
import usesoft.persistencia.ProdutoDAO;

/**
*

  • @author rodrigo
    */
    public class PedidoGN {

    Session session;
    Transaction trasaction;
    HttpSession sessao;

    public PedidoGN(Session s, Transaction tx, HttpSession sessao) {
    this.session = s;
    this.trasaction = tx;
    this.sessao = sessao;
    }

    //Metodo responsavel de popular o combo de pesquisa de clientes para inserção no pedido
    public List clienteBusca(String nomeFantasia) throws Throwable, Exception {
    //Cria Lista de resultado
    Registro reg = (Registro) sessao.getAttribute(“registroSessao”);
    ClienteDAO cDAO = new ClienteDAO(this.session, this.trasaction);
    //Chama metodo do DAO para criar a lista de 10 clientes de acordo com os dados de NomeFantasia
    List listResult = cDAO.clienteBuscaList(nomeFantasia, reg.getCgcEmpresa());
    //Retorna a lista com o resultado para o DWR para montar o combo
    return listResult;
    }

    public Produto produtoConsulta(Produto p) {

     ProdutoDAO pDAO = new ProdutoDAO(this.session, this.trasaction, this.sessao);
    
     Produto pro = new Produto();
    
     pro.setSaldo(p.getSaldo());
     pro.setPrecoVenda(p.getPrecoVenda());
     pro.setUniMedida(p.getUniMedida());
     pro.setMarca(p.getMarca());
     pro.setDescricao(p.getDescricao());
    
    
     //recebe a lista consultada pelo loginDao no banco 
     List<Produto> produtos;
     produtos = pDAO.listaProdutos(pro);
    
    
     return null;
    

    }
    }[/code]

JavaScript para execução do metodo no DWR

[code]function cleanAddOptions(local){
dwr.util.removeAllOptions(local);
}

function montaCombo(listBeans){
dwr.util.removeAllOptions(“cliente_combo”);
dwr.util.addOptions(“cliente_combo”, listBeans, “id”, “nomeFantasia”);

}

function carregaCombo(){
cleanAddOptions(‘cliente_combo’);
var TextClienteNomeFantasia = dwr.util.getValue(‘Pedido_clienteNomeFantasia’);
nomeFantasia = TextClienteNomeFantasia;
alert("Teste retorno Value: "+TextClienteNomeFantasia);
alert("Teste retorno Value: "+nomeFantasia);
//chama o metodo clienteBusca na Classe PedidoGN
PedidoGN.clienteBusca(nomeFantasia, function resultado(lista) {
// todo codigo a seguir sera executado apos a resposta do metodo -metodoExemplo-
// data contém a resposta vinda do Java.
dwr.util.addOptions(“cliente_combo”, lista, “id”, “nomeFantasia”);
});
}[/code]

No Glassfish o erro:

[code]INFO: Error creating an instance of the following DWR Creator: org.directwebremoting.create.NewCreator.
java.lang.InstantiationException: usesoft.gn.PedidoGN
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at org.directwebremoting.create.NewCreator.getInstance(NewCreator.java:67)
at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:149)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:379)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:332)
at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:104)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)

INFO: Method execution failed:
java.lang.InstantiationException: usesoft.gn.PedidoGN
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at org.directwebremoting.create.NewCreator.getInstance(NewCreator.java:67)
at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:149)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:379)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:332)
at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:104)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)[/code]

Ola,

Tenta colocar o construtor padrão na classe PedidoGN.

Olá Bruno, obrigado pela resposta,
tentei esse procedimento, porém ao passar pela sessão de registro ocorre o seguinte erro:

16:50:18,690 INFO [accessLog] Method execution failed: java.lang.NullPointerException at usesoft.gn.PedidoGN.<init>(PedidoGN.java:32) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.directwebremoting.create.NewCreator.getInstance(NewCreator.java:67) at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:149) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:379) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:332) at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:104) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120) at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:662)

ou seja, a sessão não é capturada, pois preciso da mesma para consulta no banco de dados.

Código alterado:

[code]package usesoft.gn;

import java.util.List;
import javax.servlet.http.HttpSession;
import org.hibernate.Session;
import org.hibernate.Transaction;
import usesoft.entidades.Cliente;
import usesoft.entidades.Produto;
import usesoft.entidades.Registro;
import usesoft.persistencia.ClienteDAO;
import usesoft.persistencia.ProdutoDAO;

/**
*

  • @author rodrigo
    */
    public class PedidoGN {

    Session session;
    Transaction trasaction;
    HttpSession sessao;

    public PedidoGN(){

    }

    public PedidoGN(Session s, Transaction tx, HttpSession sessao) {
    this.session = s;
    this.trasaction = tx;
    this.sessao = sessao;
    }
    Registro reg = (Registro)sessao.getAttribute(“registroSessao”);
    ClienteDAO cDAO = new ClienteDAO(this.session, this.trasaction);

    //Metodo responsavel de popular o combo de pesquisa de clientes para inserção no pedido
    public List clienteBusca(String nomeFantasia) throws Throwable, Exception {
    //Cria Lista de resultado
    //Registro reg = (Registro)sessao.getAttribute(“registroSessao”);
    //ClienteDAO cDAO = new ClienteDAO(this.session, this.trasaction);
    //Chama metodo do DAO para criar a lista de 10 clientes de acordo com os dados de NomeFantasia
    List listResult = cDAO.clienteBuscaList(nomeFantasia, reg.getCgcEmpresa());
    //Retorna a lista com o resultado para o DWR para montar o combo
    return listResult;
    }

    public Produto produtoConsulta(Produto p) {

     ProdutoDAO pDAO = new ProdutoDAO(this.session, this.trasaction, this.sessao);
    
     Produto pro = new Produto();
    
     pro.setSaldo(p.getSaldo());
     pro.setPrecoVenda(p.getPrecoVenda());
     pro.setUniMedida(p.getUniMedida());
     pro.setMarca(p.getMarca());
     pro.setDescricao(p.getDescricao());
    
    
     //recebe a lista consultada pelo loginDao no banco 
     List<Produto> produtos;
     produtos = pDAO.listaProdutos(pro);
    
    
     return null;
    

    }
    }[/code]

Opa,

Rapaz, esta linha, 32, está fora do construtor? Se sim, isto é o erro, vc está usando um atributo sem inicializa-lo.

andersonfluz,

tenta colocar a propriedade SCOPE.

[code]

        <create creator="new" javascript="PedidoGN" scope="request">  

            <param name="class" value="usesoft.gn.PedidoGN" />  

        </create>  

    <convert converter="bean" match="usesoft.entidades.*"/>  

[/code]

BrunoCarlo, se eu inserir a linha 32 Registro reg = (Registro)sessao.getAttribute("registroSessao"); estaria retornando ao problema inicial, pois o construtor padrão inicializando, solicita o como parâmetro o HttpSession sessao, acho que não entendi sua orientação, mesmo assim obrigado pela ajuda.

fbahia32, fiz esse procedimento, porem ainda continua o erro, obrigado pela atenção e ajuda.

o interessante é que o DWR demonstra e orienta uma integração MVC pelo framework Spring, alguém já conseguiu uma interação com DWR em MVC independente de framework?