Erro no Tomcat depois de usar @ViewScoped no JSF 2

0 respostas
F

Meu Tomcat está dando o seguinte erro no log:

INFO: SessionListener: contextInitialized()
09/06/2011 09:31:50 org.apache.catalina.session.StandardSession writeObject
AVISO: Cannot serialize session attribute com.sun.faces.renderkit.ServerSideStateHelper.LogicalViewMap for session 6F467024D48ECCA4AD660F3C036E9A4F
java.io.NotSerializableException: org.hibernate.transaction.JDBCTransaction
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1001)
        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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1001)
        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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1001)
        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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1001)
        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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1551)
        at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:994)
        at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:528)
        at org.apache.catalina.session.StandardManager.unload(StandardManager.java:469)
        at org.apache.catalina.session.StandardManager.stop(StandardManager.java:678)
        at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4842)
        at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3422)
        at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:943)
        at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:361)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        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:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)

e esse foi o erro exibido no console:

2480 [http-8080-1] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
2480 [http-8080-1] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
2511 [http-8080-1] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
2854 [http-8080-1] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
09/06/2011 09:31:56 org.apache.catalina.session.StandardManager start
GRAVE: Exception loading sessions from persistent storage
java.lang.IllegalStateException: unread block data
        at java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode(ObjectInputStream.java:2377)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1361)
        at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at java.util.HashMap.readObject(HashMap.java:1030)
        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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at java.util.HashMap.readObject(HashMap.java:1030)
        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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1475)
        at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:977)
        at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)
        at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
        at org.apache.catalina.session.StandardManager.start(StandardManager.java:648)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4680)
        at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3428)
        at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:943)
        at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:361)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        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:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)

isso começou quando comecei a usar o @ViewScoped do JSF 2.0,

ai esta o codigo que uso na minha pagina.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">
    <h:head>

    </h:head>
    <h:body>
        <h:form id="Formulario1">
            <h:commandButton value="unica" action="#{pessoaById.aparece}" >                
                <f:setPropertyActionListener target="#{pessoaById.capturaid}" value="33"/>
            </h:commandButton>


            <rich:panel header="Pesquisa" >
                <h:inputText value="#{pessoaById.digitar}" />
                <a4j:commandButton render="out" value="Pesquisar" action="#{pessoaById.pesquisaPessoa}"/>
                <br/><br/>

                <a4j:outputPanel id="out">
                    <table border="1">
                        <tr>
                            <td>ID</td>
                            <td>Nome</td>
                        </tr>
                        <a4j:repeat value="#{pessoaById.suaLista}" var="x">
                            <tr>
                                <td>
                                    <h:commandButton  value="#{x.pes_id}" action="#{pessoaById.aparece}">
                                        <f:setPropertyActionListener target="#{pessoaById.capturaid}" value="#{x.pes_id}"/>
                                    </h:commandButton>
                                </td>
                                <td>
                                    <h:commandLink value="#{x.pes_nom_completo}" action="#{pessoaById.pesquisaUnica}">
                                        <f:setPropertyActionListener target="#{pessoaById.capturaid}" value="#{x.pes_id}"/>
                                    </h:commandLink>
                                </td>
                                
                            </tr>
                        </a4j:repeat>
                    </table>
                </a4j:outputPanel>
            </rich:panel>

            <br/>
            <rich:panel id="painelPrincipal" header="Informações Básicas">
                #{pessoaById.capturaid}
                <br/>
                Nome completo:<h:outputText value="#{pessoaById.pes_nom_completo}" />
                <br/>
                Data Nascimento:<h:outputText value="#{pessoaById.pes_data_nascimento}" />
            </rich:panel>

            <rich:tabPanel id="painelAbas" switchType="client">
                <rich:tab header="Dados Pessoais">
                    b
                    <br/>                    

                    

                </rich:tab>

                <rich:tab header="Cursos">
                    <p>We are working hard on RichFaces 4.0 which will have full JSF
                        2 integration. That is not all though, here is a summary of updates
                        and features:</p>

                </rich:tab>
            </rich:tabPanel>
        </h:form>

    </h:body>
</html>

e ai esta o meu managedBean com o @ViewScoped

@ManagedBean
@ViewScoped
public class PessoaById extends GravaPessoas implements Serializable{

    private Session sessao = CriadorDeSessaoNovo.getSession();
    private Transaction tx = sessao.beginTransaction();
    private String campo;
    private String digitar;
    private List suaLista;
    private String dados = "";
    private Integer capturaid;
    private String erro;
    private String dados1;

    private List pessoasList;

    public void pesquisaUnica() {        
        System.out.println("capturaID: "+getCapturaid());
        System.out.println("METODO pesquisaUNICA");
        int a = getCapturaid();
        Pessoas obj_pessoa = (Pessoas) sessao.get(Pessoas.class, a);
        
        setPes_nom_completo(obj_pessoa.getPes_nom_completo());
        

        System.out.println("nome: "+obj_pessoa.getPes_nom_completo());
        System.out.println("id: "+obj_pessoa.getPes_id());

    }

    public void pesquisaPessoa() {
        setSessao(CriadorDeSessaoNovo.getSession());
        Criteria listagem_query = getSessao().createCriteria(Pessoas.class).
                addOrder(Order.asc("pes_nom_completo")).
                add(Restrictions.like("pes_nom_completo", "%" + digitar + "%").
                ignoreCase());

        suaLista = listagem_query.list();
        //System.out.println(listagem_query.list().size());
    }

    public void aparece(){        
        System.out.println("capturaID: "+getCapturaid());        
        System.out.println("METODO aparece");
        
    }
    //getters e setters
Criado 9 de junho de 2011
Respostas 0
Participantes 1