- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人成功使用 OpenJPA 和 Glassfish 吗?
我正在尝试将 OpenJPA 2.1 与 Glassfish 3.1 开源一起使用。我已按照说明在此处集成两者 -> http://weblogs.java.net/blog/ss141213/archive/2006/07/using_openjpa_a.html
我在 Eclipse Indigo 中有一个非常简单的 EJB 项目,其中包含以下内容:
Caused by: java.lang.IllegalArgumentException: java.lang.ClassNotFoundException: com.rares.test.Person
at serp.util.Strings.toClass(Strings.java:164)
at serp.util.Strings.toClass(Strings.java:108)
at serp.bytecode.BCClass.getType(BCClass.java:566)
at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:283)
at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:254)
at org.apache.openjpa.enhance.PCClassFileTransformer.transform0(PCClassFileTransformer.java:144)
at org.apache.openjpa.enhance.PCClassFileTransformer.transform(PCClassFileTransformer.java:124)
at org.apache.openjpa.persistence.PersistenceProviderImpl$ClassTransformerImpl.transform(PersistenceProviderImpl.java:294)
at org.glassfish.persistence.jpa.ServerProviderContainerContractInfo$1.transform(ServerProviderContainerContractInfo.java:98)
at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:742)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.privateGetPublicMethods(Class.java:2547)
at java.lang.Class.getMethods(Class.java:1410)
at com.sun.enterprise.deployment.EjbDescriptor.addAllInterfaceMethodsIn(EjbDescriptor.java:2327)
at com.sun.enterprise.deployment.EjbDescriptor.getLocalRemoteBusinessMethodDescriptors(EjbDescriptor.java:2290)
... 40 more
@Entity
@Table (name="PERSON")
public class Person implements Serializable {
private static final long serialVersionUID = 3707476467775531463L;
@Id
@GeneratedValue (strategy=GenerationType.IDENTITY)
@Column private Long id;
@Column private String name;
public interface PersonManager {
void create (com.rares.test.Person p);
}
@Stateless
public class PersonDao implements PersonManager {
@PersistenceContext (unitName="RarePersistUnit")
protected EntityManager mgr;
@Override
public void create(com.rares.test.Person p) {
mgr.persist(p);
}
}
<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="RarePersistUnit">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>jdbc/RaresMySql</jta-data-source>
<class>com.rares.test.Person</class>
<properties>
</properties>
</persistence-unit>
</persistence>
最佳答案
注意:以下假设 OpenJPA 2.1 和 Glassfish 3.1 .结果可能因两者的版本而异。
抛出的异常是执行失败的典型 bytecode enchancement在运行时由 OpenJPA。字节码增强可以在构建时或运行时完成。获得运行时支持的更好选择之一是使用 javaagent
但需要一些古怪的配置:
javaagent
在 Glassfish 域配置文件中(通过在 jvm-options
元素下指定额外的 java-config
元素),${com.sun.aas.installRoot}/modules/glassfish.jar
修改类路径包括commons-lang-2.4.jar
(我没有费心去做,因为它会导致一个非常脆弱的设置)。 Serp
的选择因为字节码增强器是部署时引发异常的原因。显然,部署时间增强无法定位持久性上下文中使用的类,因为使用了不正确的类加载器来定位类。就我而言,Glassfish
EarClassLoader
和
EarLibClassLoader
类加载器用于在两个单独的调用中加载类,都失败并显示以下消息(堆栈跟踪在这里无关紧要):
WARNING: LDR5207: ASURLClassLoader EarLibClassLoader :
doneCalled = true
doneSnapshot = ASURLClassLoader.done() called ON EarLibClassLoader :
urlSet = []
doneCalled = false
Parent -> org.glassfish.internal.api.DelegatingClassLoader@10e3c8c
AT Sun Jul 17 13:27:54 IST 2011
BY :java.lang.Throwable: printStackTraceToString
at com.sun.enterprise.util.Print.printStackTraceToString(Print.java:639)
at com.sun.enterprise.loader.ASURLClassLoader.done(ASURLClassLoader.java:211)
...
...
WARNING: LDR5207: ASURLClassLoader EarClassLoader :
doneCalled = true
doneSnapshot = ASURLClassLoader.done() called ON EarClassLoader :
urlSet = [URLEntry : file:/C:/glassfish3/glassfish/domains/domain1/eclipseApps/app-ear/app-jsf-0.0.1-SNAPSHOT_war/WEB-INF/classes/, URLEntry : file:/C:/glassfish3/glassfish/domains/domain1/eclipseApps/app-ear/app-jsf-0.0.1-SNAPSHOT_war/WEB-INF/lib/commons-fileupload-1.2.1.jar, URLEntry : file:/C:/glassfish3/glassfish/domains/domain1/eclipseApps/app-ear/app-jsf-0.0.1-SNAPSHOT_war/WEB-INF/lib/commons-io-1.4.jar, URLEntry : file:/C:/glassfish3/glassfish/domains/domain1/eclipseApps/app-ear/app-jsf-0.0.1-SNAPSHOT_war/WEB-INF/lib/primefaces-3.0.M2.jar, URLEntry : file:/C:/glassfish3/glassfish/domains/domain1/generated/ejb/app-ear/app-jsf-0.0.1-SNAPSHOT_war/, URLEntry : file:/C:/glassfish3/glassfish/domains/domain1/eclipseApps/app-ear/app-ejb-0.0.1-SNAPSHOT_jar/, URLEntry : file:/C:/glassfish3/glassfish/domains/domain1/generated/ejb/app-ear/app-ejb-0.0.1-SNAPSHOT_jar]
doneCalled = false
Parent -> org.glassfish.internal.api.DelegatingClassLoader@1a3fe65
AT Sun Jul 17 13:27:54 IST 2011
BY :java.lang.Throwable: printStackTraceToString
at com.sun.enterprise.util.Print.printStackTraceToString(Print.java:639)
at com.sun.enterprise.loader.ASURLClassLoader.done(ASURLClassLoader.java:211)
...
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>process-classes</phase>
<configuration>
<tasks>
<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="maven.compile.classpath"/>
<openjpac>
<classpath refid="maven.compile.classpath"/>
</openjpac>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
openjpa-maven-plugin
,因为在撰写本文时,OpenJPA 2.2.0 版仅作为快照提供。
${com.sun.aas.installRoot}/glassfish/lib
来完成的。 (例如,
C:/glassfishv3/glassfish/lib
),而不是在较早的博客文章中提供的复制到
${com.sun.aas.instanceRoot}/lib
的建议(例如,
C:/glassfishv3/glassfish/domains/domain1/lib
)
${com.sun.aas.instanceRoot}/lib
导致无法通过 Maven Glassfish 插件部署应用程序。
geronimo-*
、
derby-*
和
org.apache.bval*
)由 Glassfish 3.1 作为 Java EE 6 SDK、Java DB 实现或 Derby 客户端的一部分提供,并且在 JSR 303 中提供bean 验证框架(Hibernate Validator)。
关于jpa - OpenJPA 是否适用于 Glassfish?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6721962/
查看在数据库中执行的 SQL 查询的 OpenJPA 配置是什么?我想查看在日志或控制台中执行的所有参数的查询,而不是查看 JPQL 查询 最佳答案 启用所有 SQL 语句的日志记录,减去参数值。
我创建了一个包含一张表的数据库:users DROP DATABASE IF EXISTS DB_TEST; CREATE database DB_TEST; USE DB_TEST; -- ----
任何人都可以解释为什么我会收到此错误(下面的完整堆栈跟踪): Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: You hav
在 Open JPA 注释处理器/maven 插件上收到此警告?有什么问题吗?在另一个项目中我没有收到此警告。 [WARNING] diagnostic: warning: The following
我试图为使用 Apache TomEE Maven 插件开发的 Java Enterprise Web 应用程序编写测试。该应用程序运行良好,一切似乎都正常运行。我考虑使用 JUnit Jupiter
我在使用 SQLite 的 JPA 中遇到此错误,我不知道为什么会出现这种情况,有帮助吗? 我的 persistence.xml: org.apache.openjpa.
我正在尝试将应用程序从 WLP 迁移到 Tomcat,在尝试部署 war 时,出现以下异常 org.apache.openjpa.persistence.ArgumentException:此配置不允
我对 OpenJPA 的一个问题感到头疼。 我有一个方法: public void update() { System.out.println("START: Update...");
OpenJPA 是否支持类似于 Hibernate 的批量插入? ?我没有在文档中找到它,但我希望我错过了它。我知道JPA doesn't support it in general . 最佳答案 简
我在带有 DB2 的 WebSphere 上使用 OpenJPA 1.2.3。有没有一种方法可以构建和捆绑我的应用程序,允许同一应用程序 (EAR) 根据环境(DEV、ACPT、PROD 等)更改架构
OpenJPA 2.3.x 的删除顺序发生错误,我不知道为什么。 鉴于这些 JPA 映射 // grandparent @Entity @Table(name = "three_phase_motor
有没有办法按照它们的顺序获取列 在 Java 类中声明,还是以其他方式指定顺序? 我正在使用映射工具 ant 任务在 sql 文件中为我的类生成 DDL。 最佳答案 不,JPA 的每个实现都可以按照它
我正在使用 TomEE 1.5.2 服务器,我想知道在哪里可以找到 openejb.xml文件? 我必须配置这个文件,就像那里: http://tomee.apache.org/openjpa.htm
我是 OpenJPA 新手我正在尝试将数据插入到一个表中,其中一些数据来自另一个表。下面是场景。 Table1: id, app_name, app_version, app_active Tabl
嗨,我需要使用 and or 条件进行复杂的查询。但 and 条件似乎覆盖了 or 条件,这是我的代码: public List search(CartesioPojo params) { C
我想知道我使用 OpenJpa 2 保存实体的方式是否正确。 我从反序列化的休息服务接收对象,然后保存此实例: 开始交易 从数据库检索实例(即使我已经获得了该实例) 将属性从分离的实例复制到从数据库检
如何将 openjpa 设置为在查询前刷新。当我更改数据库中的某些值时,我想将这些更改传播到应用程序中。 我在 persistence.xml 中试过这个设置: false/true - same
是否可以将以下内容翻译成(Open)JPA? select t0.* from Person t0 left outer join Car t1 on t0.id = t1.id_person and
我正在尝试在现有的 Maven 项目中生成元模型。该项目已经有一些数据源,在生成源中生成了元模型。 我需要将新数据库中的表添加到此应用程序。我为 XML 配置生成了 Java 类和条目。下面的构建日志
我有以下查询方法,但性能较低: @Override public Map getFeatureCounts() { StopWatch timer = new StopWatch();
我是一名优秀的程序员,十分优秀!