Um simples INSERT maior dor de cabeça
Srs. Temos o seguinte:
Pessoa
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table(name = "pessoa", schema = "public")
@SequenceGenerator(name = "public.pessoa_sequence_generator", sequenceName = "public.pessoa_sequence_generator")
public class Pessoa {
private Integer id_pessoa;
private String tx_nome_completo;
public Pessoa() {
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "public.pessoa_sequence_generator")
public Integer getId_pessoa() {
return id_pessoa;
}
public void setId_pessoa(Integer id_pessoa) {
this.id_pessoa = id_pessoa;
}
@Column(name = "tx_nome_completo", nullable = false)
public String getTx_nome_completo() {
return tx_nome_completo;
}
public void setTx_nome_completo(String tx_nome_completo) {
this.tx_nome_completo = tx_nome_completo;
}
}
Bean PessoaCadastrar
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
public class PessoaCadastrar {
private Pessoa pessoa;
private String resultado;
public PessoaCadastrar() {
pessoa = new Pessoa();
resultado = "";
}
public String cadPessoa() {
try {
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
Pessoa p = new Pessoa();
session.save(p);
tx.commit();
session.close();
resultado = "Pessoa cadastrada com sucesso!";
} catch (HibernateException e) {
e.printStackTrace();
}
return resultado;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
}
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Configuracoes da conexao -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="connection.url">
jdbc:postgresql:sap//localhost
</property>
<property name="connection.username">postgres</property>
<property name="connection.password">blabla</property>
<!-- Pool de conexao -->
<property name="connection.pool_size">1</property>
<!-- Dialeto do SQL -->
<property name="hibernate.dialect">
org.hibernate.dialect.PostgreSQLDialect
</property>
<!-- Desabilita o Cache -->
<property name="cache.provide_class">
org.hibernate.cache.NoCacheProvider
</property>
<!-- Mostra os comandos SQL -->
<property name="show_sql">true</property>
<!-- mapping classes -->
<mapping class="Pessoa" />
</session-factory>
</hibernate-configuration>
cadpessoa.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<html>
<head>
<title>SAPRO :: Sistema de Acompanhamento de Processo</title>
</head>
<body>
<f:view>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Nome" for="un" />
<h:inputText id="un" value="#{pessoaBean.pessoa.tx_nome_completo}" />
</h:panelGrid>
<h:commandButton value="Salvar" action="#{pessoaBean.cadPessoa}" />
</h:form>
</f:view>
</body>
</html>
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<managed-bean>
<managed-bean-name>pessoaBean</managed-bean-name>
<managed-bean-class>PessoaCadastrar</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/pages/cadpessoa.jsp</from-view-id>
<navigation-case>
<from-outcome>sucesso</from-outcome>
<to-view-id>/pages/cadpessoa.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-outcome>listarPessoas</from-outcome>
<to-view-id>/pages/cadpessoa.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
web.xml
<?xml version="1.0"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<description>sapro</description>
<display-name>sapro</display-name>
<context-param>
<param-name>javax.faces.application.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<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>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
[ERROR]
11:26:11,906 ERROR [STDERR] log4j:ERROR "org.jboss.logging.appender.FileAppender" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@b0ce8f].
11:26:11,906 ERROR [STDERR] log4j:ERROR Could not instantiate appender named "FILE".
11:26:12,406 INFO [STDOUT] 11:26:12,406 INFO [Version] Hibernate Annotations 3.2.1.GA
11:26:12,593 INFO [STDOUT] 11:26:12,593 INFO [Environment] Hibernate 3.2.4.sp1
11:26:12,718 INFO [STDOUT] 11:26:12,718 INFO [Environment] hibernate.properties not found
11:26:12,718 INFO [STDOUT] 11:26:12,718 INFO [Environment] Bytecode provider name : javassist
11:26:12,750 INFO [STDOUT] 11:26:12,750 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling
11:26:13,937 INFO [STDOUT] 11:26:13,937 INFO [Configuration] configuring from resource: /hibernate.cfg.xml
11:26:13,953 INFO [STDOUT] 11:26:13,937 INFO [Configuration] Configuration resource: /hibernate.cfg.xml
11:27:09,375 ERROR [STDERR] org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1494)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at PessoaCadastrar.cadPessoa(PessoaCadastrar.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:131)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
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:179)
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(Unknown Source)
Caused by: org.dom4j.DocumentException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory Nested exception: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1484)
... 37 more
Detalhe, senão tiver usando projeto do TIPO JSF ou seja, usando um MAIN, funciona que é uma blz!
Creio que deva ser uma falta de atenção, já gastei muito cartucho e essa é minha última tentativa!
grato!
supinet