问题标签 [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.
java - 告诉 OpenEJB 忽略 MDB
我为最终将消息放入队列的活动编写了单元测试。只要将消息放入该队列,消息驱动的 bean 就会开始处理。但我不想在单元测试中测试 MDB。我如何告诉 OpenEJB 忽略它们?
我设置了具有几个属性的 OpenEJB:
我知道我必须设置openejb.deployments.classpath.exclude
,但我无法确定正确的值:
例如,我的班级名为org.example.mdb.MyMDB
.
java - OpenEJB 和 JUnit:Sessioncontext.isCallerInRole 总是返回 false
我需要编写一个会话 bean,在代码中的某处检查当前用户是否具有某些角色。
为了对我的 EJB3 进行单元测试,我正在尝试 OpenEJB。我按照他们关于测试安全性的示例进行操作,但是如果我在代码中使用 SessionContect.isCallerInRole() 测试角色,它总是返回 false。
为什么它不起作用?
我写了一些代码来说明。
我的本地界面:
我的 EJB:
我的测试:
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 的更改仍在数据库中。我错过了什么?
java - 如何对 EJB3 Container 进行身份验证?
我的业务类受 EJB3 安全注释保护,现在我想从 Spring 控制器调用这些方法,我该怎么做?
编辑我将添加一些关于我的设置的信息,我使用 Tomcat 作为 webcontainer,使用 OpenEJB 将 EJB 嵌入到 tomcat 中。我没有选择任何版本的 spring 所以它或多或少地接受建议。
编辑当前设置以这种方式工作:我有一个登录表单+控制器,它User
在 SessionContext 中放置了一个 pojo。每次有人访问站点的安全部分时,应用程序都会检查用户 pojo,如果它在那里检查角色然后显示页面,如果它没有显示适当的消息或重定向到登录页面。现在,业务调用是通过调用方法进行的,User
该方法绕过了可能的安全上下文,该上下文是openejb 安全示例中的此代码的混音:
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。
maven - 如何解决 Jetty 和 OpenEJB 之间的 JNDI 冲突?
我正在运行带有 OpenEJB 的 Jetty(来自 Maven)。问题是它们通过 JNDI 上下文发生冲突。Stephen Connolly前段时间用解决方案解释了这个问题。该解决方案看起来相当过时(它适用于 Jetty 6.x,而我使用的是 Jetty 7.x)并且对我来说不是很清楚。有人可以解释一下是否可以同时运行 Jetty 和 OpenEJB?很高兴看到一个例子。
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
:
但是我的应用容器似乎没有加载/考虑它们。有任何想法吗?
java - 使用 stub 和 openejb 框架测试 ejb
我正在尝试测试一个注入了另一个 EJB 的 EJB。出于测试目的,我想为注入的 EJB 使用存根。我曾使用 openEJB 作为 EJB 的框架进行测试。
这是 EJB:
真正注入的 EJB :
EJB 的存根版本:
并且使用的 JUnit 测试:
我曾尝试使用特定的 ejb-jar 覆盖存根对真实 EJB 的使用(我想在我的服务中使用“BeanStub”而不是默认的“Bean”):
不幸的是,我在声明 EJB 时遇到了问题:
方法或编写 ejb-jar 的方式有问题吗?
tomcat - 安装后删除openejb web app
我正在使用与 Tomcat 6 集成的 openEjb 3。
安装后我可以删除(我的意思是取消部署)openejb Web 应用程序吗?或者 openejb 网络应用程序必须始终存在于 Tomcat 中?谢谢您的回复。
unit-testing - 使用 OpenEJB 进行 EJB 存储库测试 - 如何回滚更改
我尝试使用 OpenEJB 测试基于 EJB 的存储库。每次运行新的单元测试时,我都希望我的数据库处于“初始”状态。测试后,所有更改都应回滚(无论测试是否成功)。如何以简单的方式完成它?我尝试使用 UserTransaction - 在测试开始时开始它并在完成时回滚更改(如下所示)。我不知道为什么,但是使用此代码,在执行回滚更改后,DB 中的所有更改(在单元测试期间完成)都将保留。正如我所写,我想以最简单的方式完成它,无需任何外部数据库模式等。
提前感谢您的任何提示!
彼得