问题标签 [openejb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2462 浏览

java - 告诉 OpenEJB 忽略 MDB

我为最终将消息放入队列的活动编写了单元测试。只要将消息放入该队列,消息驱动的 bean 就会开始处理。但我不想在单元测试中测试 MDB。我如何告诉 OpenEJB 忽略它们?

我设置了具有几个属性的 OpenEJB:

我知道我必须设置openejb.deployments.classpath.exclude,但我无法确定正确的值:

例如,我的班级名为org.example.mdb.MyMDB.

0 投票
1 回答
1190 浏览

java - OpenEJB 和 JUnit:Sessioncontext.isCallerInRole 总是返回 false

我需要编写一个会话 bean,在代码中的某处检查当前用户是否具有某些角色。

为了对我的 EJB3 进行单元测试,我正在尝试 OpenEJB。我按照他们关于测试安全性的示例进行操作,但是如果我在代码中使用 SessionContect.isCallerInRole() 测试角色,它总是返回 false。

为什么它不起作用?

我写了一些代码来说明。

我的本地界面:

我的 EJB:

我的测试:

0 投票
1 回答
873 浏览

mysql - 使用休眠的 EJB 事务回滚

所以我在 OpenEJB 和 Hibernate 中使用容器管理的事务,并且我有一个相当简单的事务回滚场景,我正试图开始工作。我的数据库管理系统是 MySQL。

我从一个具有默认事务传播(必需)的无状态 EJB 开始,它执行一些基本的实体操作/创建。

我还有第二个无状态 EJB,它有一个用于指定传播的注释(但它仍然只是“必需的”)。从第二个 EJB 方法中,我调用了第一个 EJB 的方法,它执行基本的实体操作/创建。我得到一个还没有 ID 的实体,所以我调用了 entityManager.flush(),它为我提供了一个 ID,可以处理从第一个 EJB 返回的实体。

这是我遇到问题的地方。第二个 EJB 现在有一个问题,可能是系统异常,或者是某种异常。我想强制回滚,所以这个 EJB 有一个 @Resource SessionContext ctx 成员,我用它来调用 ctx.setRollbackOnly()。

这是我在日志中看到的:

调试 - 需要 TX:已启动事务 org.apache.geronimo.transaction.manager.TransactionImpl@540eb4ca

....东西,最终堆栈跟踪我正在记录....

调试 - 需要 TX:事务 org.apache.geronimo.transaction.manager.TransactionImpl@540eb4ca 上的 setRollbackOnly()
调试 - 需要 TX:回滚事务 org.apache.geronimo.transaction.manager.TransactionImpl@540eb4ca

但是当我检查数据库时,来自第一个 EJB 的更改仍在数据库中。我错过了什么?

0 投票
1 回答
753 浏览

java - 如何对 EJB3 Container 进行身份验证?

我的业务类受 EJB3 安全注释保护,现在我想从 Spring 控制器调用这些方法,我该怎么做?

编辑我将添加一些关于我的设置的信息,我使用 Tomcat 作为 webcontainer,使用 OpenEJB 将 EJB 嵌入到 tomcat 中。我没有选择任何版本的 spring 所以它或多或少地接受建议。

编辑当前设置以这种方式工作:我有一个登录表单+控制器,它User在 SessionContext 中放置了一个 pojo。每次有人访问站点的安全部分时,应用程序都会检查用户 pojo,如果它在那里检查角色然后显示页面,如果它没有显示适当的消息或重定向到登录页面。现在,业务调用是通过调用方法进行的,User该方法绕过了可能的安全上下文,该上下文是openejb 安全示例中的此代码的混音:

0 投票
1 回答
3240 浏览

tomcat - Tomcat / OpenEJB / Eclipse - 配置

我需要使用 OpenEJB 容器配置我的 Tomcat ( 5.5 ),并且我想在 Eclipse 中拥有它。谁能解释我它是如何工作的,因为当我在一个目录(即 C:/Tomcat/ )中安装了 Tomcat 时,Tomcat 的 OpenEJB 的另一个目录( C:/OpenEJB/ ),当我部署时,我有另一个不同于 Tomcat 的文件夹webapp 登陆的地方(在 Eclipse .metadata 中)。还有两个配置文件夹,一个在 Tomcat 目录下,一个在 Eclipse 目录下。配置文件是如何传播的?

我还想问是否可以为此目的配置 ANT,以便我也可以使用 ANT 和 Eclipse 部署/重新部署到服务器?

谢谢你的反馈,

亲切的问候,P。

0 投票
0 回答
676 浏览

maven - 如何解决 Jetty 和 OpenEJB 之间的 JNDI 冲突?

我正在运行带有 OpenEJB 的 Jetty(来自 Maven)。问题是它们通过 JNDI 上下文发生冲突。Stephen Connolly前段时间用解决方案解释了这个问题。该解决方案看起来相当过时(它适用于 Jetty 6.x,而我使用的是 Jetty 7.x)并且对我来说不是很清楚。有人可以解释一下是否可以同时运行 Jetty 和 OpenEJB?很高兴看到一个例子。

0 投票
2 回答
4150 浏览

hibernate - 我应该如何在 OpenEJB 中声明我的数据源?

我正在尝试在 OpenEJB 3.1.4 + Tomcat 6 中部署应用程序。该应用程序在 JBoss 中部署正常,但我想让它在 OpenEJB 中运行。

基本上,我想知道如何配置我的数据源并使用 EAR for OpenEJB 部署它

现在:

EJB 可以在 OpenEJB 的 JNDI 浏览器中找到,但 hibernate 似乎没有找到数据源(它无法更新数据库模式)——来自标准输出:

persistence.xml对我的数据源的看法:

我试图包含一个数据源文件,如src/main/application/mysql-ds.xml

甚至另一个像src/main/application/openejb.xml

但是我的应用容器似乎没有加载/考虑它们。有任何想法吗?

0 投票
2 回答
4225 浏览

java - 使用 stub 和 openejb 框架测试 ejb

我正在尝试测试一个注入了另一个 EJB 的 EJB。出于测试目的,我想为注入的 EJB 使用存根。我曾使用 openEJB 作为 EJB 的框架进行测试。

这是 EJB:

真正注入的 EJB :

EJB 的存根版本:

并且使用的 JUnit 测试:

我曾尝试使用特定的 ejb-jar 覆盖存根对真实 EJB 的使用(我想在我的服务中使用“BeanStub”而不是默认的“Bean”):

不幸的是,我在声明 EJB 时遇到了问题:

方法或编写 ejb-jar 的方式有问题吗?

0 投票
2 回答
115 浏览

tomcat - 安装后删除openejb web app

我正在使用与 Tomcat 6 集成的 openEjb 3。

安装后我可以删除(我的意思是取消部署)openejb Web 应用程序吗?或者 openejb 网络应用程序必须始终存在于 Tomcat 中?谢谢您的回复。

0 投票
1 回答
713 浏览

unit-testing - 使用 OpenEJB 进行 EJB 存储库测试 - 如何回滚更改

我尝试使用 OpenEJB 测试基于 EJB 的存储库。每次运行新的单元测试时,我都希望我的数据库处于“初始”状态。测试后,所有更改都应回滚(无论测试是否成功)。如何以简单的方式完成它?我尝试使用 UserTransaction - 在测试开始时开始它并在完成时回滚更改(如下所示)。我不知道为什么,但是使用此代码,在执行回滚更改后,DB 中的所有更改(在单元测试期间完成)都将保留。正如我所写,我想以最简单的方式完成它,无需任何外部数据库模式等。

提前感谢您的任何提示!

彼得