2016-03-24 3 views
2

wenn ich tomcat starten bekomme ich die folgende Fehlermeldung:PersistenceUnit: default kann nicht Hibernate Session bauen - Hibernate

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/spring-context.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:956) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:747) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) 
at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory 
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954) 
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:884) 
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) 
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343) 
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) 
... 21 more 
Caused by: org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister 
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:123) 
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77) 
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:344) 
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:465) 
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:881) 
... 26 more 
Caused by: org.hibernate.InstantiationException: could not instantiate test object : br.gov.sp.saobernardo.sispront.solicitacao.Solicitacao 
at org.hibernate.engine.internal.UnsavedValueFactory.instantiate(UnsavedValueFactory.java:43) 
at org.hibernate.engine.internal.UnsavedValueFactory.getUnsavedIdentifierValue(UnsavedValueFactory.java:68) 
at org.hibernate.tuple.PropertyFactory.buildIdentifierAttribute(PropertyFactory.java:61) 
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:138) 
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:509) 
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:124) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:96) 
... 30 more 
Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at org.hibernate.engine.internal.UnsavedValueFactory.instantiate(UnsavedValueFactory.java:40) 
... 40 more 
Caused by: java.lang.NullPointerException 
at br.gov.sp.saobernardo.sispront.solicitacao.Solicitacao.<init>(Solicitacao.java:86) 
... 45 more 

ich den Fehler gegoogelt in verschiedenen Foren und Stackoverflow, aber ich habe keine Lösung gefunden und haben immer noch die gleichen Fehler unterhalb der Klasse Solicitacao.class, pom.xml, feder context.xml, persistence.xml

package br.gov.sp.saobernardo.sispront.solicitacao; 

import java.util.Calendar; 

import javax.persistence.Entity; 
import javax.persistence.EnumType; 
import javax.persistence.Enumerated; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 
import javax.persistence.PrePersist; 
import javax.persistence.SequenceGenerator; 
import javax.persistence.Temporal; 
import javax.persistence.TemporalType; 
import javax.validation.constraints.NotNull; 

import org.hibernate.validator.constraints.NotBlank; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.format.annotation.DateTimeFormat; 

import br.gov.sp.saobernardo.sispront.usuario.Usuario; 

@Entity 
public class Solicitacao { 

@Id 
@Autowired 
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sq_solicitacao") 
@SequenceGenerator(name = "sq_solicitacao", sequenceName = "sq_solicitacao", allocationSize = 1, initialValue = 1) 
private Long id; 

@NotBlank(message = "{solicitacao.cadastro.nome.obrigatorio}") 
private String nome; 

@NotBlank(message = "{solicitacao.cadastro.mae.obrigatorio}") 
private String mae; 

@NotBlank(message = "{solicitacao.cadastro.rg.obrigatorio}") 
private String rg; 

@DateTimeFormat(pattern = "dd/MM/yyyy") 
private Calendar dataNascimento; 

@DateTimeFormat(pattern = "dd/MM/yyyy") 
private Calendar dataAtendimento; 

private String motivo; 

private String horario; 

private String local; 

@NotBlank(message = "{solicitacao.cadastro.telefone.obrigatorio}") 
private String telefone; 

private String celular; 

@NotNull(message = "{solicitacao.cadastro.internacao.obrigatorio}") 
private Boolean internacao; 

private Double dias; 

private String nomeSolicitante; 

private String rgSolicitante; 

private String observacao; 

@Enumerated(EnumType.STRING) 
private Status status; 

@ManyToOne(fetch=FetchType.LAZY) 
@JoinColumn(name="autor_id") 
private Usuario autor; 

private String unidade; 

@Temporal(TemporalType.TIMESTAMP) 
private Calendar data; 

public Solicitacao() { 
    status = Status.Aguardando_Levantamento_de_Ficha; 
    setUnidade(autor.getUnidade()); 
} 

@PrePersist 
void prePersist() { 
    data = Calendar.getInstance(); 
} 
GET's AND SET's 

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>br.gov.sp.saobernardo</groupId> 
<artifactId>sispront</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 
<name>SisPRONT</name> 
<url>http://www.saobernardo.sp.gov.br/saude</url> 

<properties> 
    <spring.version>4.1.6.RELEASE</spring.version> 
    <spring-security.version>4.0.1.RELEASE</spring-security.version> 
</properties> 

<dependencies> 
    <!-- Dependências do Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context-support</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-oxm</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <!-- <dependency> --> 
    <!-- <groupId>org.springframework</groupId> --> 
    <!-- <artifactId>spring-test</artifactId> --> 
    <!-- <version>${spring.version}</version> --> 
    <!-- <scope>test</scope> --> 
    <!-- </dependency> --> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>${spring-security.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>${spring-security.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-taglibs</artifactId> 
     <version>${spring-security.version}</version> 
    </dependency> 
    <!-- Dependências do Hibernate --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>5.1.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>5.2.4.Final</version> 
    </dependency> 
    <!-- Dependência do driver JDBC do Oracle --> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc14</artifactId> 
     <version>10.2.0.4.0</version> 
    </dependency> 
    <!-- Dependência para upload de arquivos pelo SpringMVC --> 
    <dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.3.1</version> 
    </dependency> 
    <!-- Dependência de EL para Servlet Container --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <!-- Dependências para envio de email --> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4.7</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.velocity</groupId> 
     <artifactId>velocity</artifactId> 
     <version>1.7</version> 
    </dependency> 
    <!-- Dependências de log --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.5.8</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>18.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
     <version>2.3.1</version> 
    </dependency> 
    <!-- Dependências da especificação de Servlet --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <!-- <dependency> --> 
    <!-- <groupId>br.gov.sp.saobernardo</groupId> --> 
    <!-- <artifactId>arquivo</artifactId> --> 
    <!-- <version>1.0-SNAPSHOT</version> --> 
    <!-- </dependency> --> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-all</artifactId> 
     <version>1.3</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <version>1.4.188</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.1-api</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-digester</groupId> 
     <artifactId>commons-digester</artifactId> 
     <version>2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
     <version>2.9</version> 
    </dependency> 

</dependencies> 

<build> 
    <finalName>sispront</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

feder context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:security="http://www.springframework.org/schema/security" 
xsi:schemaLocation="http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-4.1.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd 
http://www.springframework.org/schema/jee 
http://www.springframework.org/schema/jee/spring-jee-4.1.xsd 
http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security-4.0.xsd"> 

<context:component-scan base-package="br.gov.sp.saobernardo.sispront" /> 

<mvc:annotation-driven /> 

<mvc:default-servlet-handler /> 

<jee:jndi-lookup jndi-name="jdbc/dahue" id="oracleDataSource" /> 

<bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="oracleDataSource" /> 
    <property name="jpaVendorAdapter"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
    </property> 
</bean> 

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<bean id="messageSource" 
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="useCodeAsDefaultMessage" value="true" /> 
    <property name="basenames"> 
     <list> 
      <value>classpath:ValidationMessages</value> 
     </list> 
    </property> 
    <property name="defaultEncoding" value="ISO-8859-1"></property> 
    <property name="cacheSeconds" value="0" /> 
</bean> 

<tx:annotation-driven /> 

<security:authentication-manager> 
    <security:authentication-provider 
     user-service-ref="usuarioDAO"> 
     <security:password-encoder hash="bcrypt" /> 
    </security:authentication-provider> 
</security:authentication-manager> 

<security:http auto-config="true" use-expressions="true"> 
    <security:intercept-url pattern="https://stackoverflow.com/a/**" 
     access="hasRole('ROLE_LOGADO')" /> 

    <security:form-login login-page="/log-in" 
     always-use-default-target="true" default-target-url="https://stackoverflow.com/a/solicitacao/home" 
     login-processing-url="/log-in" username-parameter="registro" 
     password-parameter="senha" /> 
    <security:logout logout-url="https://stackoverflow.com/a/log-out" 
     logout-success-url="/log-in" delete-cookies="JSESSIONID" 
     invalidate-session="true" /> 
</security:http> 

<security:global-method-security 
    secured-annotations="enabled" /> 

persistence.xml

<persistence 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" 
version="2.0"> 
<persistence-unit name="default"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 

    <class>br.gov.sp.saobernardo.sispront.usuario.Usuario</class> 
    <class>br.gov.sp.saobernardo.sispront.papel.Papel</class> 
    <class>br.gov.sp.saobernardo.sispront.solicitacao.historico.Alteracao</class> 
    <class>br.gov.sp.saobernardo.sispront.solicitacao.Solicitacao</class> 

    <properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9iDialect" /> 
     <property name="hibernate.show_sql" value="false" /> 
     <property name="hibernate.format_sql" value="true" /> 
     <property name="hibernate.hbm2ddl.auto" value="update" /> 
    </properties> 
</persistence-unit> 

Antwort

3

autor ist null in den Konstruktor. Hibernate während der Verarbeitung erstellt die Zuordnung temporäre Objekte von Klassen mit Class<?>.createInstance(). In dieser Situation ein Standardkonstruktor

public Solicitacao() { 
    status = Status.Aguardando_Levantamento_de_Ficha; 
    setUnidade(autor.getUnidade()); 
} 
+0

Thanks'm aufgerufen wird, starten und wissen noch nicht, die Protokollfehler zu interpretieren, aber das war es, danke, nahm man das Seil von meinem Hals –

+1

@ViniciusDuarte Sie sind willkommen . Beginnen Sie immer am Ende eines Stack-Trace 'verursacht durch: java.lang.NullPointerException at br.gov.sp.saobernardo.sispront.solicitacao.Solicitacao. (Solicitacao.java:86) '. Sehen Sie sich die Zeile mit einer bestimmten Nummer an. –