1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Persistência Hibernate JPA, Hibernate e JSF2

Galera bom dia,

Estou com um problema a alguns dias na persistência de dados de um formulário JSF2 com hobernate e jpa.

Quando vou gravar ao DAO tenho o seguinte erro:

SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/HelloWord] threw exception [viewId:/Hello.xhtml - View /Hello.xhtml could not be restored.] with root cause
javax.faces.application.ViewExpiredException: viewId:/Hello.xhtml - View /Hello.xhtml could not be restored.

Imagino que e alguma configuração do persistence ou web.xml. Mas ainda não consegui resolver. Segue o meu persistence.

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">  
    <persistence-unit name="condominioPU" transaction-type="RESOURCE_LOCAL">  
           <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>  
        <properties>  

            <property name="hibernate.archive.autodetection" value="class, hbm"/>
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>


            <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:xe" />  
            <property name="javax.persistence.jdbc.user" value="admin" />    
            <property name="javax.persistence.jdbc.password" value="admin" /> 
            <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />              
            <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />  
            <property name="hibernate.show_sql" value="true" />   
            <property name="hibernate.format_sql" value="true" />   
            <property name="hibernate.hbm2ddl.auto" value="update" />  
        </properties>  
</persistence-unit>  
</persistence>

Abaixo web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Financeiro</display-name>
    <listener>
        <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>


    <!-- <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value></param-value> 
        </context-param> -->
</web-app>

Segue o pom.xml:

 <dependencies>
    <!-- OmniFaces (utilitarios para JSF) -->
    <dependency>
        <groupId>org.omnifaces</groupId>
        <artifactId>omnifaces</artifactId>
        <version>1.8.1</version>
        <scope>compile</scope>
    </dependency>
    <!-- Mojarra (Implementação JSF 2) -->
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.2.7</version>
        <scope>compile</scope>
    </dependency>
    <!-- PrimeFaces (Biblioteca de componentes) -->
    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>5.0</version>
        <scope>compile</scope>
    </dependency>
    <!-- Weld (implementação do CDI) -->
    <dependency>
        <groupId>org.jboss.weld.servlet</groupId>
        <artifactId>weld-servlet</artifactId>
        <version>2.2.1.Final</version>
        <scope>compile</scope>
    </dependency>
    <!-- Núcleo do Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.6.Final</version>
        <scope>compile</scope>
    </dependency>
    <!-- Implementação de EntityManager da JPA -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.6.Final</version>
        <scope>compile</scope>
    </dependency>
    <!-- commons beanutils -->
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.2</version>
        <scope>compile</scope>
    </dependency>
    <!-- JUnit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.2.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>
    <dependency>
       <groupId>javax.el</groupId>
       <artifactId>javax.el-api</artifactId>
       <version>2.2.4</version>
    </dependency>
  </dependencies>
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="Cedente")
public class Cedente implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue
    private Long id;

    @Column(name = "nome")
    private String nome;

    public Cedente() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }


}

Bean:

import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;

import br.com.modelo.Cedente;
import br.com.repository.CedenteRepository;

@ManagedBean
@RequestScoped
public class CedenteMB extends CedenteRepository implements Serializable {

    private static final long serialVersionUID = 1L;

    private Cedente cedente;

    public CedenteMB() {
        if(this.getCedente()==null){
            this.setCedente(new Cedente());
        }
    }

    public void Salvar() {
        this.salvar(this.getCedente());
    }

    public Cedente getCedente() {
        return cedente;
    }

    public void setCedente(Cedente cedente) {
        this.cedente = cedente;
    }
}

E agora quem poderá me ajudar????

  • Como está seu bean?

    Error   07 de set de 2015
  • O meu bean está correto. Criei uma classe isolada com main com valores estáticos. Está persistindo corretamente.

    Editei o fonte acima (add bean).

    Wellington Jesus   07 de set de 2015
  • Uma observação: Estou fazendo um CRUD simples apenas. Sem Autenticação de usuário

    Wellington Jesus   07 de set de 2015
  • Então, não sei se é isso, mas suas anotações estão misturadas. vc está usando escopo do CDI, com JSF.

    mude a importação do seu RequestScoped, pra esse pacote javax.faces.bean.requestscoped;

    Error   07 de set de 2015
  • Mudei a importação mas o erro continua. Importei o "javax.faces.bean.RequestScoped;"

    Wellington Jesus   07 de set de 2015
Mostrar todos os 8 comentários>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsf hibernate jpa ou faça a sua própria pergunta.