问题标签 [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 回答
3461 浏览

java - OpenEJB 本地客户端注入失败

请注意,我非常密切地反映了此处给出的示例。

事实上,我的情况稍微简单一些,因为此时我什至没有使用持久性单元进行测试。我的测试项目提供了一个简单的 MDB 和一个会话 bean;MDB 和会话 bean 都正常加载,并且可以在不注入的情况下成功测试(以受约束的方式)。

在我的单元测试中建议的带有注释的注入@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

当我访问此页面时,它通知我可能需要在我的测试用例上下文设置中添加一个额外的属性。所以现在看起来像:

但它仍然失败。我真的很喜欢这个成语,如果我能在我的项目中成功使用它,我会非常兴奋。

其他一些注意事项:

  • 我按照 Apache 的建议提供了一个“空”ejb-jar.xml(在 src/main/resources 中)和一个 application-client.xml(在 src/test/resources 中)告诉 OpenEJB 扫描类路径 [更新:如事实证明,我做错了。请参阅下面的答案,了解对我有用的建议。]
  • OpenEJB 引擎没有将带有注释的测试用例@LocalClient识别为实际被正确提取和处理(例如,我的 MDB 就是这样)

提前感谢您的任何帮助或指导。

0 投票
2 回答
342 浏览

java - OpenEJB Standalone -- 非 JMS MDB 无法部署

我只想使用当前在测试中运行良好的设置“上线”。我已经下载了独立的 OpenEJB 服务器并将我的 EJB 放在/apps目录中。

日志中的输出表明独立服务器可能不支持非 JMS 适配器:

请注意其他模块,包括 RA 本身似乎已成功启动。唯一的问题似乎是创建非 JMS 消息的消费者。

我还可以尝试查看或配置什么?谢谢!

0 投票
1 回答
302 浏览

eclipse - OpenEJB 无法识别 Eclipse 类路径

我已经安装了 OpenEJB eclipse 插件,但似乎 openEJB 服务器无法识别项目的类路径。只有当我将所有依赖项(第三方 jars)复制到 OpenEJB/lib 目录时,它才能正常工作。有没有其他方法可以解决,特别是eclipse配置?谢谢

0 投票
1 回答
539 浏览

ejb - OpenEJB 上的 ModuleID 是什么

我将 EJB jar 部署到 OpenEJB 远程模式,但我的客户端无法查找 EJB [EJB 已正确部署],在调试项目后我发现 openejb.client.moduleid 必须具有值。但是什么是 moduleid,我该如何设置这个属性?

0 投票
1 回答
579 浏览

tomcat - 如何在 Tomcat-OpenEJB 中部署 EJB 2.0、JAR 和 EAR?

有没有办法在 Tomcat-OpenEJB 中部署 EJB、JAR 或 EAR?如果我不想使用折叠的 EAR 概念或 JEE6 。

请回复..!!

提前致谢。

0 投票
2 回答
1475 浏览

tomcat - Tomcat 6 和 OpenEJB 3.1.4 中的 EJB 2.0 Jar

0 投票
2 回答
703 浏览

openejb - 如何强制 openEJB 忽略 mappedName 并改用 openejb.jndiname.format

我有一个 EJB:

并使用以下方式配置 openEJB:

当嵌入式 openEJB 启动时,它会忽略 openejb.jndiname.format 选项并创建错误的 JNDI 名称:

如何将其配置为使用 openejb.jndiname.format 选项并创建类似于以下内容的 JNDI 名称:

?

如果 openEJB 不能做到这一点,我将感谢任何解决方法。

0 投票
2 回答
423 浏览

log4j - 如何配置 OpenEJB 客户端日志记录?

我们正在使用连接到一个 OpenEJB 服务器容器的 OpenEJB 客户端。OpenEJB 服务器由 Corosync 和 Pacemaker 管理以进行故障转移操作。每当 OpenEJB 实例失败(由网络、硬件、JVM 或其他问题引起)时,Corosync+Pacemaker 就会在另一台机器上启动另一个 OpenEJB 服务器实例。该过程相对较快,因此对于我们的用例来说这不是问题。

尽管 OpenEJB 提供了原生的故障转移机制,但我们仍然选择使用自己的机制来管理它,因为这样我们可以更好地控制客户端。一切都按预期工作,除了过于冗长的客户端日志记录。我们想关闭它或微调它以禁用连接失败消息,例如:

22/08/2011 14:06:23 org.apache.openejb.client.StickyConnectionStrategy connect AVISO:故障转移:无法连接到服务器:ejbd://192.168.1.5:4201 异常:无法连接到服务器'ejbd: //192.168.1.5:4201'。检查服务器是否已启动以及指定的 serverURL 是否正确。接下来尝试。

我已经尝试降低 OpenEJB 客户端中 log4j 的日志记录级别,但失败了。根据log4j 文档这篇文章,应该将所需级别设置为“错误”或“致命”。问题是,类别名称是什么?

我已经尝试过:

  • p.put("log4j.category.OpenEJB.client", "error");
  • p.put("log4j.category.OpenEJB", "error");

但一切都没有改变。那么,我需要使用什么属性来关闭这些 WARN 消息?

0 投票
2 回答
3059 浏览

openjpa - 有没有办法在 EE 配置中强制执行 RuntimeUnenhancedClasses

我只花了半个小时调试一些没有损坏的新代码,因为我忘记检查(再次!)我的日志中是否有这条可怕的消息:

我在 OpenEJB 3.2 快照构建、Java 1.6.0_25 和 Eclipse Helios 中运行 OpenJPA 2.1.0。我的实体使用 ant PCEnhancerTask 进行了增强。

我的 META-INF/openjpa.xml 包含

无论如何,这个 EE 配置是否有让 OpenJPA 像在 SE 配置中那样强制执行 RuntimeUnenhancedClasses 选项?

怀疑我的“真正”问题源于 Eclipse svn 更新,该更新有时会触及我的 JPA 实体源,导致构建覆盖我的增强类。

令人沮丧的是,我从 IDE 运行单元测试的频率以某种奇怪的方式失败,当我需要做的只是运行增强器时,我会去挖掘代码寻找问题。

0 投票
1 回答
4020 浏览

unit-testing - 关于在嵌入式模式下使用 OpenEJB 进行单元测试的困惑

我开始探索在嵌入式模式下使用 OpenEJB 对我的 EJB3 组件进行单元测试的可能性。起初我得到如下输出的错误

openejb.home 属性设置为系统属性并指向我的 OpenEJB 安装目录。

HelloBeanTest#bootContainer()是一个 setUp 方法,它在 JNDI 查找中失败。如下图所示。

在解决了这样的问题后,我开始在非嵌入式模式下尝试 OpenEJB,并从其安装目录启动容器并将组件部署为 ejb.jar。部署成功,我开始创建一个独立的 Java 客户端。独立的 Java 客户端还没有完成,但同时我又回到了嵌入式模式下进行测试。

令我惊讶的是,测试突然开始通过。我为组件添加了更多功能并对其进行了测试。一切正常。下面是该运行的输出。

我很高兴地编码和测试,直到它再次崩溃。似乎是从 /apps 目录中删除 ejb.jar 导致了它。因此,OpenEJB 似乎仍然从安装目录进行 JNDI 查找,但在嵌入式模式下运行时使用当前目录查找实际实现。我做出这个结论是因为部署在apps/dir中的ejb.jar没有本地版本的所有方法。(我用 javap 仔细检查过。)只有类签名是相同的。

在这个很长的介绍之后,是提问时间。

  • 任何人都可以为这种行为提供任何解释吗?
  • 在测试之前在应用程序/目录中打包和部署 EJB 是一项简单的任务,但我能否确定即使这样我也在测试正确的实现?
  • 这是否与指向 OpenEJB 安装目录的 openejb.home 属性有关?

总而言之,OpenEJB 版本是Apache OpenEJB 3.1.4 build: 20101112-03:32,在日志输出中也可见。

提前致谢。