Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WAS Liberty 8.5.5.4、JPA 2.0-发现的实现:无_Java_Jpa_Websphere Liberty - Fatal编程技术网

Java WAS Liberty 8.5.5.4、JPA 2.0-发现的实现:无

Java WAS Liberty 8.5.5.4、JPA 2.0-发现的实现:无,java,jpa,websphere-liberty,Java,Jpa,Websphere Liberty,我能够让JPA使用EclipseLuna并安装eclipseLink,并用3个JAR创建了一个用户库 然而,我现在已经转到rationalapplicationdeveloper-RAD,并尝试使用WAS-Liberty提供的JPA。我最初使用RADJPA方面来配置JPA,然后编辑persistence.xml 我得到这个错误: 原因:javax.persistence.PersistenceException:在尝试以下发现的实现后,test2没有可用的持久性提供程序:无 我假设“无”总是一个

我能够让JPA使用EclipseLuna并安装eclipseLink,并用3个JAR创建了一个用户库

然而,我现在已经转到rationalapplicationdeveloper-RAD,并尝试使用WAS-Liberty提供的JPA。我最初使用RADJPA方面来配置JPA,然后编辑persistence.xml

我得到这个错误: 原因:javax.persistence.PersistenceException:在尝试以下发现的实现后,test2没有可用的持久性提供程序:无

我假设“无”总是一个配置错误,在解决这个问题之前我什么都做不了

我已将wlp\dev\api\spec\com.ibm.ws.javaee.persistence.2.0_1.0.1.jar复制到WEB-INF/lib中,并将其包含在我的java构建路径中

正如您在下面看到的,我猜测我的提供者不正确,并尝试了几个值

<?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="test2" transaction-type="RESOURCE_LOCAL">
    <!-- provider>org.eclipse.persistence.jpa.PersistenceProvider</provider-->
    <!-- provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider-->
    <provider>com.ibm.websphere.persistence.PersistenceProviderImpl</provider>
    <non-jta-data-source>java:comp/env/New Generic JDBC</non-jta-data-source>
    <class>com.ibm.analytics.jpa.Dimtask</class>
    <properties>
        <property name="openjpa.jdbc.Schema" value="RM"/>
        <property name="javax.persistence.jdbc.url" value="jdbc:netezza://netezza-1.site.ibm.com:5480/DATABASENAME"/>
        <property name="javax.persistence.jdbc.user" value="jspoon"/>
        <property name="javax.persistence.jdbc.password" value="xxxxxxx"/>
        <property name="javax.persistence.jdbc.driver" value="org.netezza.Driver"/>
    </properties>
</persistence-unit>
</persistence>

这与eclipse和eclipseLink之前使用的代码完全相同

看来我把XML包含错了。。。而且它太大了,无法发表评论…一些额外的信息。。。我可以访问db ok并使用JPA工具从表中创建实体类。您需要在server.xml中添加JPA-2.0功能。您还想从persistence.xml jsp-2.2 jpa-2.0中删除提供程序定义。我确实删除了仍然存在错误的提供程序。您是将wlp\dev\api\spec\com.ibm.ws.javaee.persistence.2.0_1.0.1.jar放在应用程序中尝试调试,还是一直存在?如果它一直在那里,我建议把它取下来再试一次。您可能没有使用您认为的javax.persistence API。
<?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="test2" transaction-type="RESOURCE_LOCAL">
    <!-- provider>org.eclipse.persistence.jpa.PersistenceProvider</provider-->
    <!-- provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider-->
    <!-- provider>com.ibm.websphere.persistence.PersistenceProviderImpl</provider-->
    <non-jta-data-source>java:comp/env/New Generic JDBC</non-jta-data-source>
    <class>com.ibm.analytics.jpa.Dimtask</class>
    <properties>
        <property name="openjpa.jdbc.Schema" value="RM"/>
        <property name="javax.persistence.jdbc.url" value="jdbc:netezza://netezza-1.boulder.ibm.com:5480/BACC_TST_ISHANGO_DW"/>
        <property name="javax.persistence.jdbc.user" value="jspoon"/>
        <property name="javax.persistence.jdbc.password" value="C0ke4y0u"/>
        <property name="javax.persistence.jdbc.driver" value="org.netezza.Driver"/>
    </properties>
</persistence-unit>
</persistence>
static EntityManagerFactory emf = Persistence.createEntityManagerFactory( "test2" );