Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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
我可以检索实体,但我可以';t持久化WebSphere7JPA_Jpa_Websphere_Jpa 2.0_Eclipselink - Fatal编程技术网

我可以检索实体,但我可以';t持久化WebSphere7JPA

我可以检索实体,但我可以';t持久化WebSphere7JPA,jpa,websphere,jpa-2.0,eclipselink,Jpa,Websphere,Jpa 2.0,Eclipselink,我正在处理一个用NetBeans开发的应用程序。它使用单个实体,可以从数据库中检索或持久化新实体。它使用JPA2.0 w/EclipseLink。当部署在捆绑的Glassfish中时,它可以正常工作。然而,当部署到WAS7.0.0.9(已经包括JPA2.0补丁)时,我可以检索实体,但不能持久化它们 我要在无状态EJB 3.0中持久化的代码是: public void create(MyEntity entity) { getEntityManager().persist(enti

我正在处理一个用NetBeans开发的应用程序。它使用单个实体,可以从数据库中检索或持久化新实体。它使用JPA2.0 w/EclipseLink。当部署在捆绑的Glassfish中时,它可以正常工作。然而,当部署到WAS7.0.0.9(已经包括JPA2.0补丁)时,我可以检索实体,但不能持久化它们

我要在无状态EJB 3.0中持久化的代码是:

public void create(MyEntity entity) {
        getEntityManager().persist(entity);
}
我已将日志属性设置为FINEST,以便获得更多详细信息

<property name="eclipselink.logging.level" value="FINEST"/>
服务器日志也没有显示有关此的信息。有什么想法吗

提前谢谢


解决方案: 这是正在工作的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="fonacotCap" transaction-type="JTA">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>jdbc/fonacotCap</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.target-server" value="WebSphere_7"/>
            <property name="eclipselink.target-database" value="Informix"/> 
            <property name="eclipselink.weaving" value="true"/>** 
            <property name="eclipselink.ddl-generation" value="create-tables"/>
            <property name="eclipselink.logging.level" value="FINEST"/>
            <property name="eclipselink.logging.file" value="/opt/apps/libs/persistence.log"/>
        </properties>
    </persistence-unit> </persistence>

org.eclipse.persistence.jpa.PersistenceProvider
jdbc/fonacotCap
假的
** 

您是否已将eclipselink配置为持久性提供程序?默认情况下,WAS使用自己的持久性提供程序(包装OpenJPA)


谢谢特瑞尔。实际上,我已经在persistence.xml文件中配置了它。我刚刚在最初的问题中添加了persistence.xml。此外,我还将EclipseLink jar添加到应用程序的类路径中。我不确定我是否还需要什么。我找到了解决办法。我需要修改persistence.xml。我对原始问题进行了编辑,更新内容反映了额外的行数。请不要只发布链接答案。如果链接包含答案,请将答案的相关部分放在StackOverflow上。如果链接后面的内容发生更改,或者内容被删除,您的答案将不再回答此问题。请参阅更新的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="fonacotCap" transaction-type="JTA">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>jdbc/fonacotCap</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.target-server" value="WebSphere_7"/>
            <property name="eclipselink.target-database" value="Informix"/> 
            <property name="eclipselink.weaving" value="true"/>** 
            <property name="eclipselink.ddl-generation" value="create-tables"/>
            <property name="eclipselink.logging.level" value="FINEST"/>
            <property name="eclipselink.logging.file" value="/opt/apps/libs/persistence.log"/>
        </properties>
    </persistence-unit> </persistence>