tomee 배포 응용 프로그램에서 다음 예외가 발생합니다.SQLException : Driver : org.hsqldb.jdbcDriver가 tomee의 URL에 대해 null을 반환했습니다.
[EL Severe]: 2014-07-11 09:18:34.811--ServerSession(860687693)--Thread(Thread[http-bio-8081-exec-3,5,main])--Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Driver:[email protected] returned null for URL:"jdbc:mysql://localhost:3306/testDB"
Error Code: 0
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:316)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:135)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.setOrDetectDatasource(DatabaseSessionImpl.java:204)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:741)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:239)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:685)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:204)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:304)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:336)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:309)
at org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createEntityManager(ReloadableEntityManagerFactory.java:159)
at org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:115)
at org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:91)
at org.apache.openejb.persistence.JtaEntityManager.find(JtaEntityManager.java:164)
을 heres 내 tomee.xml 파일,
<tomee>
<Resource id="testDBPool" type="DataSource">
jdbcDriverClassName = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost:3306/testDB"
username = "admin"
password = "admin"
</Resource>
</tomee>
난 이미 내 tomee/lib에 폴더에 mysql_connector 항아리를 넣어. 다음과 같이 내 의 persistence.xml 파일,
<?xml version="1.0" encoding="UTF-8"?>
<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="TestPersistence"
transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/testDBPool</jta-data-source>
<shared-cache-mode>NONE</shared-cache-mode>
<properties>
<property name="eclipselink.weaving" value="static" />
<property name="eclipselink.logging.level.sql" value="FINEST" />
<property name="eclipselink.logging.level" value="FINEST" />
<property name="eclipselink.logging.level.cache" value="FINEST" />
</properties>
</persistence-unit>
</persistence>
나는 내가 잘못 위치를 이해하지 못하고, 내가 왜이 예외는 무엇입니까? 이 문제를 해결하도록 도와주세요.
은 아마 관련이없는,하지만 : 당신은 MySQL을 사용하는 경우 당신은 왜 마이크로 소프트 SQL Server 드라이버 ('sqljdbc4')를 추가? –
sqljdbc4.jar을 제거했지만 동일한 문제가 있습니다. –
EclipseLink의 버그처럼 보이는 org.hsqldb.jdbcDriver는 mysql JDBC URL을 지원하지 않으므로 [java.sql.Driver.connect']의 javadoc에 지정된대로 null을 반환해야합니다 (http : //docs.oracle.com/javase/8/docs/api/java/sql/Driver.html#connect-java.lang.String-java.util.Properties-) : _ "드라이버는"null "을 반환해야합니다. 주어진 URL에 연결하는 것이 잘못된 종류의 드라이버라는 것을 깨닫습니다. "_ 또는 설정 오류가 발생하여 실제로 hsqldb를 사용하도록 구성되었지만 MySQL URL이있는 데이터 소스를 가리키고 있습니다. –