我编写了一个使用Servlet 3.0,Jsp和JPA 2.0的应用程序,并将其部署到Websphere应用程序服务器8.5中。 因为我已经配置到ibm websphere控制台,数据源和jdbc驱动程序,以及j2c身份验证(我使用oracle 11g作为数据库)。我不知道我的persistence.xml应该是什么样子,如果我需要指定并添加openJPA jar到我的项目。 现在我把任何东西都放到了persistence.xml中我遇到了这个问题:
Error 500: <openjpa-2.2.3-SNAPSHOT-r422266:1764177 fatal user error> org.apache.openjpa.persistence.ArgumentException
我该怎么办?也许我错过了JPA的工作方式
提前致谢
答案 0 :(得分:0)
OpenJPA jar应由WebSphere提供,并可用于您的应用程序。这里有一个JPA示例:https://developer.ibm.com/wasdev/downloads/#asset/samples-Java_Persistence_API_JPA_Sample
在示例中,您可以看到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="jpasamplepersistenceunit">
<jta-data-source>java:comp/env/jdbc/samplejpadatasource</jta-data-source>
<non-jta-data-source>java:comp/env/jdbc/samplejpadatasourcenonjta</non-jta-data-source>
<class>wasdev.sample.jpa.Thing</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<!-- These properties are creating the database on the fly. We are using them to avoid users having
to create a database to run the sample.
See also the create=true line in the datasource meta data. -->
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" />
<property name="openjpa.jdbc.DBDictionary" value="derby" />
<!-- EclipseLink specific properties to create the database. They are only used if using the jpa-2.1 feature. -->
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode" value="both" />
</properties>
</persistence-unit>
</persistence>
我认为您的错误不是由于OpenJPA jar无法使用造成的。可能是因为您的数据库配置不正确。确保您的persistence.xml文件正确引用您的数据源。