Tomcat-EclipseLink-4002 SQLNestedException:无法为连接URL“null”创建类“”的JDBC驱动程序
好吧,我已经断断续续地做了大约一个星期了。我在网上找到了很多信息,尝试了很多不同的方法,但是没有一种方法对我有帮助,所以请你。如有任何建议,我们将不胜感激 我想让EclipseLink在Tomcat上工作。我已经在Tomcat中实现了本地工作,但是当我部署到服务器时,会出现错误。我在本地和服务器上使用Tomcat7.0.55、EclipseLink 2.3.2和JPA2.0 我已将这些罐子添加到TOMCAT_HOME/lib中。我不相信所有这些都是必要的,所以请让我知道它们是否是必要的 db2jcc.jar db2jcc_license_cu.jar 日食-2.3.2.jar javax.persistence-2.0.0.jar 这是我目前的代码 pom.xml 连接-使用jpa 但我得到了: 错误 根本原因 我从中得到的是Tomcat找不到我的context.xml。是这样吗Tomcat-EclipseLink-4002 SQLNestedException:无法为连接URL“null”创建类“”的JDBC驱动程序,tomcat,jpa,tomcat7,eclipselink,jpa-2.0,Tomcat,Jpa,Tomcat7,Eclipselink,Jpa 2.0,好吧,我已经断断续续地做了大约一个星期了。我在网上找到了很多信息,尝试了很多不同的方法,但是没有一种方法对我有帮助,所以请你。如有任何建议,我们将不胜感激 我想让EclipseLink在Tomcat上工作。我已经在Tomcat中实现了本地工作,但是当我部署到服务器时,会出现错误。我在本地和服务器上使用Tomcat7.0.55、EclipseLink 2.3.2和JPA2.0 我已将这些罐子添加到TOMCAT_HOME/lib中。我不相信所有这些都是必要的,所以请让我知道它们是否是必要的 db2j
我知道还有一些文档将资源放在server.xml中,并将ResourceLink元素放在context.xml中。我已经试过了,但是我得到了完全相同的错误。乍一看,我觉得一切都很好,但是你能试试这个dataSource=dataSource new InitialContext.lookupjava:comp/env/jdbc/MYDS;谢谢我做了更改,但也将数据源移到了服务器的context.xml中,以查看资源是否被读取。这在使用initialcontext时起作用,因此我认为问题在于,出于某种原因,Tomcat没有读取我的context.xml。我还没有用Eclipselink测试过。我的应用程序是按计划部署的,所以我会在部署时进行一些小的更改和测试。
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.3.2</version>
<exclusions>
<exclusion>
<artifactId>commonj.sdo</artifactId>
<groupId>commonj.sdo</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
</dependency>
<resource-ref>
<description>MYDS connection</description>
<res-ref-name>jdbc/MYDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<Resource name="jdbc/MYDS"
auth="Container"
type="javax.sql.DataSource"
username="username"
password="password"
driverClassName="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2://<hostname>:<port>/MYDS"
maxActive="15"
maxIdle="3" />
<persistence-unit name="MYDS" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>java:/comp/env/jdbc/MFMFB302</non-jta-data-source>
<!-- ================== File Mappings ================== -->
<mapping-file>META-INF/orm/MYDS.xml</mapping-file>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<!-- ================== Entities ================== -->
<class>model.model1</class>
<class>model.model2</class>
<properties>
<property name="eclipselink.weaving" value="false" />
<property name="eclipselink.ddl-generation.output-mode" value="sql-script"/>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.target-database" value="DB2"/>
</properties>
</persistence-unit>
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/MYDS");
Connection conn = ds.getConnection();
conn.close();
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "MYDS" );
JpaEntityManager entityManager = (JpaEntityManager) emf.createEntityManager();
javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
Error Code: 0
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:517)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:294)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:272)
Caused by: java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:524)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:493)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
at java.sql.DriverManager.getDriver(DriverManager.java:262)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)