Java 在JPA2中创建EntityManager时出错

Java 在JPA2中创建EntityManager时出错,java,jpa-2.0,openjpa,Java,Jpa 2.0,Openjpa,我正在尝试创建一个简单的JPA2应用程序,它使用OpenJPA实现将某些内容持久化到数据库中。我正在运行Derby并使用默认的嵌入式JDBC驱动程序。我一直在为这件事挠头,试图找出遗漏了什么。我相信这是件小事,但如果有人能仔细看看,给我指出正确的方向,我会非常感激。谢谢 以下是我的persistence.xml: <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://jav

我正在尝试创建一个简单的JPA2应用程序,它使用OpenJPA实现将某些内容持久化到数据库中。我正在运行Derby并使用默认的嵌入式JDBC驱动程序。我一直在为这件事挠头,试图找出遗漏了什么。我相信这是件小事,但如果有人能仔细看看,给我指出正确的方向,我会非常感激。谢谢

以下是我的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="HelloWorld">
        <jta-data-source>java:comp/env/StuffDerby</jta-data-source>
        <class>helloworld.entities.Employee</class>
    </persistence-unit>
</persistence>
调用createEntityManager()方法时失败

406 HelloWorld信息[WebContainer:0]openjpa.Runtime-启动openjpa 2.0.0
[1/11/11 12:46:21:377 PST]0000002f servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper服务SRVE0068E:在应用程序HelloWorld中的servlet HelloServlet的一个服务方法中创建的未捕获异常。创建的异常:org.apache.openjpa.persistence.PersistenceException:java.lang.String与javax.sql.DataSource不兼容
位于org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:208)
位于org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
位于org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:213)
位于com.ibm.ws.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:45)
位于com.ibm.ws.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:30)
位于helloworld.entities.controller.EmployeeManager.getEntityManager(EmployeeManager.java:37)
位于helloworld.entities.controller.EmployeeManager.getEmployee(EmployeeManager.java:188)
位于helloworld.HelloServlet.doGet(HelloServlet.java:47)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
位于com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1661)
位于com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1595)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
位于com.ibm.ws.osgi.web.extender.OsgiDirectoryProtectionFilter.doFilter(OsgiDirectoryProtectionFilter.java:94)
位于com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.\u doFilter(WebAppFilterChain.java:77)
在com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
位于com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequest(ServletWrapper.java:932)
位于com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequest(ServletWrapper.java:500)
位于com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.HandlerRequest(ServletWrapperImpl.java:178)
位于com.ibm.ws.webcontainer.webapp.webapp.handleRequest(webapp.java:3826)
位于com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
位于com.ibm.ws.webcontainer.webcontainer.handleRequest(webcontainer.java:931)
位于com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
位于com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
位于com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
位于com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
位于com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
位于com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
位于com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
在com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted上(AioReadCompletionListener.java:165)
位于com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
位于com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
位于com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
位于com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
位于com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
位于com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
位于com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
原因:java.lang.ClassCastException:java.lang.String与javax.sql.DataSource不兼容
位于org.apache.openjpa.jdbc.conf.jdbcconfigurationmpl.createConnectionFactory(jdbcconfigurationmpl.java:834)
位于org.apache.openjpa.jdbc.conf.jdbconfigurationmpl.getDBDictionaryInstance(jdbconfigurationmpl.java:594)
位于org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1489)
位于org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:507)
位于org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:432)
位于org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
位于org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
在org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)上
位于org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:939)
位于org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:930)
位于org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:626)
位于org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:193)
... 38多
换句话说,
java:comp/env/stufderby
指向一个
java.lang.Stri
EntityManagerFactory emf = Persistence.createEntityManagerFactory("HelloWorld");
EntityManager em = emf.createEntityManager();
406  HelloWorld  INFO   [WebContainer : 0] openjpa.Runtime - Starting OpenJPA 2.0.0
[1/11/11 12:46:21:377 PST] 0000002f servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet HelloServlet in application HelloWorld. Exception created : <openjpa-2.0.0-r422266:935683 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: java.lang.String incompatible with javax.sql.DataSource
    at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:208)
    at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
    at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:213)
    at com.ibm.ws.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:45)
    at com.ibm.ws.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:30)
    at helloworld.entities.controller.EmployeeManager.getEntityManager(EmployeeManager.java:37)
    at helloworld.entities.controller.EmployeeManager.getEmployee(EmployeeManager.java:188)
    at helloworld.HelloServlet.doGet(HelloServlet.java:47)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1661)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1595)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
    at com.ibm.ws.osgi.web.extender.OsgiDirectoryProtectionFilter.doFilter(OsgiDirectoryProtectionFilter.java:94)
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:932)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:500)
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931)
    at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
Caused by: java.lang.ClassCastException: java.lang.String incompatible with javax.sql.DataSource
    at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:834)
    at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:594)
    at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1489)
    at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:507)
    at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:432)
    at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
    at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
    at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
    at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:939)
    at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:930)
    at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:626)
    at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:193)
    ... 38 more
org.apache.openjpa.persistence.PersistenceException: 
    java.lang.String incompatible with javax.sql.DataSource