java - 为什么嵌入式 OpenEJB 无法部署我的应用程序?

标签 java maven-2 maven-3 openejb

我不明白为什么嵌入式 OpenEJB 容器在开始时会失败并显示非常无用的消息(抱歉日志很长):

Running com.XXX.MyTest 
Apache OpenEJB 3.1.3    build: 20101015-05:42 
http://openejb.apache.org/
INFO - openejb.home = [skipped...] 
INFO - openejb.base = [skipped...] 
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) 
INFO - Found PersistenceModule in classpath: [skipped...]/target/classes 
INFO - Found EjbModule in classpath: [skipped...]/target/test-classes 
INFO - Beginning load: [skipped...]/target/classes 
INFO - AltDD persistence.xml -> file:[skipped...]/target/classes/META-INF/test.persistence.xml 
INFO - AltDD persistence.xml -> file:[skipped...]/target/classes/META-INF/test.persistence.xml 
INFO - Beginning load: [skipped...]/target/test-classes 
INFO - Configuring enterprise application: classpath.ear 
INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container) 
INFO - Auto-creating a container for bean Finder: Container(type=STATELESS, id=Default Stateless Container) 
INFO - Configuring PersistenceUnit(name=wid, provider=org.hibernate.ejb.HibernatePersistence) 
INFO - Configuring Service(id=Default JDBC Database, type=Resource, provider-id=Default JDBC Database) 
INFO - Auto-creating a Resource with id 'Default JDBC Database' of type 'DataSource for 'abc'. 
INFO - Configuring Service(id=Default Unmanaged JDBC Database, type=Resource, provider-id=Default Unmanaged JDBC Database) 
INFO - Auto-creating a Resource with id 'Default Unmanaged JDBC Database' of type 'DataSource for 'abc'. 
INFO - Adjusting PersistenceUnit abc <jta-data-source> to Resource ID 'Default JDBC Database' from 'null' 
INFO - Adjusting PersistenceUnit abc <non-jta-data-source> to Resource ID 'Default Unmanaged JDBC Database' from 'null' 
INFO - Enterprise application "classpath.ear" loaded. 
INFO - Assembling app: classpath.ear 
Oct 28, 2010 2:00:20 PM org.hibernate.cfg.annotations.Version <clinit> 
INFO: Hibernate Annotations 3.5.6-Final 
Oct 28, 2010 2:00:20 PM org.hibernate.cfg.Environment <clinit> 
INFO: Hibernate 3.5.6-Final 
Oct 28, 2010 2:00:20 PM org.hibernate.cfg.Environment <clinit> 
INFO: hibernate.properties not found 
Oct 28, 2010 2:00:20 PM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: Bytecode provider name : javassist 
Oct 28, 2010 2:00:20 PM org.hibernate.cfg.Environment <clinit> 
INFO: using JDK 1.4 java.sql.Timestamp handling 
Oct 28, 2010 2:00:20 PM org.hibernate.annotations.common.Version <clinit> 
INFO: Hibernate Commons Annotations 3.2.0.Final 
Oct 28, 2010 2:00:20 PM org.hibernate.ejb.Version <clinit> 
INFO: Hibernate EntityManager 3.5.6-Final 
Oct 28, 2010 2:00:20 PM org.hibernate.ejb.Ejb3Configuration configure 
INFO: Processing PersistenceUnitInfo [ 
        name: abc 
        ...] 
INFO - PersistenceUnit(name=abc, provider=org.hibernate.ejb.HibernatePersistence) - provider time 328ms 
INFO - Undeploying app: classpath.ear 
ERROR - Application could not be deployed:  classpath.ear 
org.apache.openejb.OpenEJBException: Creating application failed: classpath.ear: org.apache.openejb.persistence.PersistenceUnitInfoImpl.getValidationMode()Ljavax/persistence/ValidationMode; 
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:679) 
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:450) 
        at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:368) 
        at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:280) 
        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125) 
        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:60) 
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:271) 
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:250) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        [skipped...] 

你能帮忙吗?谢谢。

最佳答案

那是因为您使用的 JPA 2.0 是 AFAIK,OpenEJB 尚不支持,请参阅 this threadOPENEJB-1236 .如果您仔细查看 Jira 问题,它看起来像是在主干中修复的。我只是不知道子任务是否正在阻塞,或者它是否可以与主干的 SNAPSHOT 版本一起使用。

关于java - 为什么嵌入式 OpenEJB 无法部署我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4044899/

相关文章:

maven - Maven “Skipping javadoc generation”为什么?

java - 如何在 Maven 中包含远程 jar 依赖项

java - Maven3 : replace transitive dependency of a direct dependency in dependency management

java - 为接口(interface)创建代理,可以通过@Autowired注入(inject),代理通过关键参数调用不同的实现

java - 是否可以查看对象图 JAXB 分析?

java - 如何将 LocalContainerEntityManagerFactoryBean 设置为 JpaTransactionManager?

java - Maven依赖问题

java - 在测试套件中设置和拆除 openCL 单元测试的正确方法?

java - 如何在 Maven 和 Intellij 之间处理 Junits 中的相对路径

java - 在 Java 10 中运行 Maven 原型(prototype) "quickstart"?