2012-04-07 3 views
0

JPAContainer가 eclipselink 대신 hibernate를 사용하도록 Vaadin 데모를 변환하려고합니다. 그러나 나는 그것을 작동시키는 것처럼 보일 수 없다. 여기 Vaadin JPAContainer2.0으로 최대 절전 모드 설정

내가이 응용 프로그램 실행하려고 스택 추적입니다 https://vaadin.com/book/-/page/jpacontainer.html

를 참조하고있는 문서입니다 : 내 persistence.xml을가/WEB-INF/클래스에 위치하고 있으며 여기

description The server encountered an internal error() that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: java.lang.ExceptionInInitializerError 
    com.vaadin.terminal.gwt.server.AbstractApplicationServlet.handleServiceException(AbstractApplicationServlet.java:1004) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:548) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

root cause 

java.lang.ExceptionInInitializerError 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
java.lang.reflect.Constructor.newInstance(Constructor.java:532) 
java.lang.Class.newInstance0(Class.java:372) 
java.lang.Class.newInstance(Class.java:325) 
com.vaadin.terminal.gwt.server.ApplicationServlet.getNewApplication(ApplicationServlet.java:82) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.createApplication(AbstractApplicationServlet.java:978) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.findApplicationInstance(AbstractApplicationServlet.java:801) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:456) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

root cause 

javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Could not open connection 
    org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1365) 
    org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1293) 
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:1375) 
org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:62) 
com.vaadin.demo.jpaaddressbook.DemoDataGenerator.create(DemoDataGenerator.java:55) 
com.vaadin.demo.jpaaddressbook.JpaAddressbookApplication.<clinit>(JpaAddressbookApplication.java:11) 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
java.lang.reflect.Constructor.newInstance(Constructor.java:532) 
java.lang.Class.newInstance0(Class.java:372) 
java.lang.Class.newInstance(Class.java:325) 
    com.vaadin.terminal.gwt.server.ApplicationServlet.getNewApplication(ApplicationServlet.java:82) 
    com.vaadin.terminal.gwt.server.AbstractApplicationServlet.createApplication(AbstractApplicationServlet.java:978) 
    com.vaadin.terminal.gwt.server.AbstractApplicationServlet.findApplicationInstance(AbstractApplicationServlet.java:801) 
    com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:456) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

root cause 

org.hibernate.exception.JDBCConnectionException: Could not open connection 
    org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:131) 
    org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) 
    org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110) 
    org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:304) 
    org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl .java:169) 
     org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java: 67) 
org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160) 
org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1363) 
org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:59) 
com.vaadin.demo.jpaaddressbook.DemoDataGenerator.create(DemoDataGenerator.java:55) 
com.vaadin.demo.jpaaddressbook.JpaAddressbookApplication.<clinit>(JpaAddressbookApplication.java:11) 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
java.lang.reflect.Constructor.newInstance(Constructor.java:532) 
java.lang.Class.newInstance0(Class.java:372) 
java.lang.Class.newInstance(Class.java:325) 
com.vaadin.terminal.gwt.server.ApplicationServlet.getNewApplication(ApplicationServlet.java:82) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.createApplication(AbstractApplicationServlet.java:978) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.findApplicationInstance(AbstractApplicationServlet.java:801) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:456) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

root cause 

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/grails_sandbox 
java.sql.DriverManager.getConnection(DriverManager.java:640) 
java.sql.DriverManager.getConnection(DriverManager.java:169) 
    org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:192) 
    org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:278) 
     org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) 
    org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169) 
org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67) 
org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160) 
org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1363) 
org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:59) 
com.vaadin.demo.jpaaddressbook.DemoDataGenerator.create(DemoDataGenerator.java:55) 
com.vaadin.demo.jpaaddressbook.JpaAddressbookApplication.<clinit>(JpaAddressbookApplication.java:11) 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
java.lang.reflect.Constructor.newInstance(Constructor.java:532) 
java.lang.Class.newInstance0(Class.java:372) 
java.lang.Class.newInstance(Class.java:325) 
com.vaadin.terminal.gwt.server.ApplicationServlet.getNewApplication(ApplicationServlet.java:82) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.createApplication(AbstractApplicationServlet.java:978) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.findApplicationInstance(AbstractApplicationServlet.java:801) 
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:456) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

를/META-INF/

<?xml version="1.0" encoding="UTF-8"?> 
<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="addressbook"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <properties> 
       <property name="hibernate.archive.autodetection" value="class" /> 
       <property name="hibernate.format_sql" value="false" /> 
       <property name="hibernate.show_sql" value="false" /> 
       <property name="hibernate.hbm2ddl.auto" value="create-update" /> 
       <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 
       <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> 
       <property name="hibernate.connection.username" value="root" /> 
       <property name="hibernate.connection.password" value="Shadow13" /> 
       <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/grails_sandbox" /> 
     </properties> 
    </persistence-unit> 

</persistence> 

필자는 MySQL의 커넥터와 함께 최대 절전 모드 라이브러리를 포함/WEB-INF/lib 디렉토리/

,536에서

나는 거의 하루 종일이 일로 혼란스러워하고있다. 어떤 도우미도 감사 할 것입니다.

+0

내게 드라이버가 buildPath에 포함되어 있지 않은 것처럼 보입니다. –

+0

WebContent/WEB-INF/lib /에 위치하며 Eclipse의 WebApp 라이브러리에 표시됩니다. – John

+0

웹 응용 프로그램은 어떻게 배포합니까? Eclipse 아래 Tomcat? –

답변

1

Ive는 이전 버전의 hibernate 3.x를 사용하여이 기능을 사용할 수있게되었습니다. 원래 나는 최대 절전 모드 4.x를 사용하고 있었고, 내가 시도했던 방식으로 사용하지 못하게하는 버전의 구성 변경이 있었음에 틀림 없다고 생각한다.