Tag: openejb

OpenEJB本地客户端注入失败

请注意,我正在非常仔细地反映这里给出的例子 。 事实上,我的情况有点简单,因为我现在甚至没有使用持久性单元进行测试。 我的测试项目提供了一个简单的MDB和一个会话bean; MDB和会话bean都正常加载,并且可以在没有注入的情况下成功测试(以约束的方式)。 在我的unit testing中使用@LocalClient注释的建议注入失败,出现已知错误: javax.naming.NamingException: Unable to find injection meta-data for [your-class]. Ensure that class was annotated with @org.apache.openejb.api.LocalClient and was successfully discovered and deployed. See http://openejb.apache.org/3.0/local-client-injection.html 当我访问此页面时,它通知我可能需要为我的测试用例上下文设置添加额外的属性。 所以现在看起来像: @Override public void setUp() throws Exception { initializeContext(); } public void initializeContext() { Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, “org.apache.openejb.client.LocalInitialContextFactory”); // the property […]

如何正确配置嵌入式OpenEJB容器以进行测试?

这是我的SLSB: @Stateless public class MyService { PersistenceContext(unitName = “abc”) EntityManager em; public boolean exists(int id) { return this.em.find(Employee.class, id) != null; } } 这是我的persistence.xml (我正在使用Glassfish v3): org.hibernate.ejb.HibernatePersistence java:/MyDS 现在我正在尝试使用OpenEJB嵌入式容器创建测试。 这是我的测试类: class MyServiceText { @Test public void testChecksExistence() throws Exception { Properties properties = new Properties(); properties.setProperty( javax.naming.Context.INITIAL_CONTEXT_FACTORY, “org.apache.openejb.client.LocalInitialContextFactory” ); InitialContext ic = new InitialContext(properties); // […]

如何指示Maven忽略我的main / resources / persistence.xml以支持test / …?

为了测试,我有两个persistence.xml文件: src/main/resources/META-INF/persistence.xml src/test/resources/META-INF/persistence.xml 如何指示Maven在测试期间忽略第一个文件? 现在它不会被忽视,因为OpenEJB说: ERROR – FAIL … Finder: @PersistenceContext unitName has multiple matches: unitName “abc” has 2 possible matches.

为什么在从jndi.properties注入后在JNDI中找不到数据源?

这是我的persistence.xml : org.hibernate.ejb.HibernatePersistence jdbc/abcDS 这是来自src/test/resources jndi.properties文件,它应该在测试期间创建一个数据源,因为缺少一个真正的数据源的真实应用服务器: java.naming.factory.initial=org.apache.openejb.client.LocalInitialContextFactory jdbc/abcDS=new://Resource?type=DataSource jdbc/abcDS.JdbcDriver=org.hsqldb.jdbcDriver jdbc/abcDS.JdbcUrl=jdbc:hsqldb:mem:testdb jdbc/abcDS.JtaManaged=true jdbc/abcDS.DefaultAutoCommit=false jdbc/abcDS.UserName=sa jdbc/abcDS.Password= 这是测试类: public class FinderTest { @BeforeClass public static void startEJB() throws Exception { InitialContext ic = new InitialContext(); ic.lookup(“jdbc/abcDS”); } } 不幸的是,没有创建数据源,这就是我一直看到的: […] javax.naming.NameNotFoundException: Name “jdbc/abcDS” not found. at org.apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java:193) at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:150) at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:124) at org.apache.openejb.core.ivm.naming.ContextWrapper.lookup(ContextWrapper.java:115) at javax.naming.InitialContext.lookup(InitialContext.java:392) at com.XXX.FinderTest.startEJB(FinderTest.java:31) […] […]

DDL生成和常规persistence.xml设置(OpenJPA)

概要 我正在尝试运行Java Web应用程序JPA 2.0示例。 编写示例应用程序是为了在Glassfish运行,使用EclipseLink作为JPA提供程序。 我想将它转换为使用OpenJPA作为JPA提供程序在TomEE运行,但我无法获得有关启动和运行OpenJPA任何详细教程。 问题 我无法将persistence.xml转换为使用OpenJPA而不是EclipseLink 。 更具体地说,给定的persistence.xml没有指定: Entity类。 这些必要吗? 所需的JPA提供者。 容器会默认为什么吗? JDBC驱动程序。 如何指定“内存中”DB(仅用于初始测试目的)? 也: 如何在OpenJPA中表达DDL生成属性? 我无法找到OpenJPA用户指南 。 细节 下面是EclipseLink persistence.xml : jdbc/__default 我有以下Entity类: order.entity.LineItem order.entity.LineItemKey order.entity.Order order.entity.Part order.entity.PartKey order.entity.Vendor order.entity.VendorPart 题 有谁知道OpenJPA的等效persistence.xml是什么样的? 或者,如果有人能指出我的OpenJPA教程,该教程涵盖了同样好的问题

Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2堆栈?

任何人都可以告诉我,目前是否可以通过Jetty“粘合”部分Java EE 6 Web配置文件? 我发现了很多关于将独立EJB 3容器,JTA提供程序等与旧Jetty版本集成的文章,所以如果我可以将它们全部协同工作,我就会更加努力。 我想组装一个Servlet 3.0 + CDI + EJB 3.1 + JTA(如果需要,我真正想要的是声明式事务管理)+ Jetty 8上的JPA 2环境(如果没有可用的Jetty替代品,则为Tomcat 7)。 我的问题是:可以做到吗? 有人设法做到了吗? 有关获取OpenEJB,Atomikos,Weld,EclipseLink和Jetty(或任何其他类似堆栈)一起工作的任何文章? 那里有任何神奇的“全部”pom.xml文件? PS:是的,我知道我可以使用GlassFish(我非常喜欢)。 我只是想知道如何使用Servlet容器获得类似的function,以及两个环境在复杂性,性能,大小,部署速度,硬件资源消耗等方面的比较。

如何在Tomcat 5.5.x中进行EJB 3.1部署

我有支持的托管计划 i)Tomcat – 5.5.xSupport ii)JDK – 1.6.x支持 iii)JSP / servlet – 2.0支持 我可以在此设置上部署EJB 3.1吗? 我听说Tomcat不支持EJB,但希望有一种解决方法。 任何建议表示赞赏。

如何配置OpenEJB日志记录?

如何配置OpenEJB日志记录格式? 这就是我现在在日志中看到的内容: […] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec Running com.XXX.FooTest Apache OpenEJB 3.1.3 build: 20101015-05:42 http://openejb.apache.org/ INFO – openejb.home = /code/XXX INFO – openejb.base = /code/XXX INFO – Configuring Service(id=Default Security Serv… […] 我想禁用INFO消息,并更改其他人的格式。 log4j.properties更改无效。

如何在Hibernate中使用TomEE

我用持久化上下文(hibernate作为提供者)创建了非常简单的app来从数据库中读取一些值。 我将Eclipse与Maven一起使用。 首先,我明白了 Caused by: org.apache.openejb.OpenEJBException: java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider: 并根据这个主题http://openejb.979440.n4.nabble.com/problem-with-hibernate-persistence-provider-td980429.html我排除了hibernate-jpa-2.0-api。 现在,我的依赖项看起来 postgresql postgresql 9.1-901.jdbc4 org.hibernate hibernate-entitymanager 4.1.3.Final org.hibernate.javax.persistence hibernate-jpa-2.0-api 现在,我不知道为什么…… Caused by: java.lang.ClassNotFoundException: org.hibernate.transaction.TransactionManagerLookup 但是TransactionManagerLookup处于hibernate核心。 请问,任何人都可以告诉我,在TomEE中如何看待pom.xml使用hibernate?