问题标签 [ejb-jar.xml]

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 投票
0 回答
251 浏览

maven - JavaEE:带有 Glassfish/Payara 的多模块 Maven 项目:EJB 模块看不到 ejb-jar.xml 安全角色

我正在将大型 JavaEE Web 应用程序迁移到多模块 Maven 表单。

ejb-jar.xml当我运行多模块 Web 应用程序时,该 EJB 看不到为特定 EJB 声明的角色。

ejb-jar.xml与我在单个大型 Web 应用程序中使用的相同(运行良好),除了 EJB 的限定名称(包装)发生了变化,新的ejb-jar.xml.

@Resource SessionContext ctx正在工作:它可以看到Principal等。

它只是不再检测到任何角色ejb-jar.xml,所以ctx.isCallerInRole(String)总是失败。

我可以@DeclareRoles在 EJB 中使用注释并且它可以工作(但这不是一个可接受的解决方案,它只是用于诊断)。

ejb-jar.xmlEJB 模块中的位于:

Maven 将其构建为:

它肯定会成为 EJB 模块的最终目标 jar(我什至已经提取并检查了它)。

部署到与单个大型 Web 应用程序相同的 Glassfish 或 Payara 服务器(它运行良好)。

在部署过程中,我没有收到任何类型的相关日志警告。

感谢有关其他可能阻止系统明显捕获ejb-jar.xml多模块 Web 应用程序项目部署的想法,或有关如何进一步诊断问题的建议。



编辑 2017-03-15:我发现(经过一段时间的睡眠),如果我将ejb-jar.xmlEJB 模块复制(或移动)到.../src/main/webapp/WEB-INF/Web 模块,它会按预期工作。但这并不是一个很好的解决方案,因为我希望不同的 Web 模块能够使用相同的 EJB 模块,这也意味着<security-role>and any <security-role-ref>and<role-link>在一个 Web 模块中而不是 EJB 模块中。我还将 EJB 模块用于 REST 服务(独立于 Web 角色上下文)并且想要相同的角色概念(在 EJB 模块中如此定义)。

0 投票
1 回答
794 浏览

ejb - Websphere 7 和 EJB 2.1 - 未指定 JNDI 名称

环境 - WAS 7.0 和 EJB 2.1

我有一个带有 EJB jar 文件的 EAR。它有一些我想转换为本地 EJB 的远程 EJB (EJB 2.1)。因此,我不得不根据我的理解修改 ejb-jar.xml。

我修改后的ejb-jar xml文件如下:

, 和是本地 ejb 新添加的标签。

我的绑定文件如下 -

在部署 EAR 文件期间,我收到以下错误 -

com.ibm.websphere.management.application.client.AppDeploymentException: ADMA0014E: 验证失败。ADMA0007E: 将 EJB 引用映射到企业 bean 的任务中发生验证错误。
Java 命名和目录接口 (JNDI) 名称未指定用于使用 EJB 名称管理器的模块 ZZZZZ 中的引用绑定 ejb/ManagerLocalHome。

知道为什么它在定义后会抱怨 JNDI 吗?我错过了什么吗?

0 投票
1 回答
1314 浏览

xml - 在 Weblogic 上配置 EJB 安全性

我试图了解 EJB 安全性如何在 WebLogic 服务器上工作。

我在 ejb-jar.xml 中有一个具有以下配置的 EJB

在 weblogic-ejb-jar.xml 中:

我是这样解释的:BeanA 作为 beanA_users 运行。“runas_a”是 beanA_users 之一。因此,BeanA 以 runas_a 用户身份运行。此外,所有 beanA_users 角色中的用户都可以调用所有 BeanA 方法。换句话说,Bean_A 作为runas_a 运行,只有runas_a 可以调用它的方法。这个对吗?

但是,当我从另一个具有以下配置的 EJB 调用此 EJB 时,我能够通过。Bean A 不应该为分配给 BeanB 中的 BeanB_users 角色的主体配置权限吗?

ejb-jar.xml:

weblogic-ejb-jar.xml:

编辑:

阅读 ejb-jar.xml 模式后,本示例中的 Bean A 似乎没有在<assembly-descriptor>元素中定义任何权限。它只定义了安全角色。我想这就是为什么任何 EJB 都可以调用它的方法的原因。但是为什么在这种情况下定义安全角色分配呢?例如,如果 BeanA 在元素中有以下内容,在这种情况下是否会阻止 BeanB 通过,因为权限不包括 runas_b 主体?

0 投票
1 回答
191 浏览

transactions - 应用程序异常的ejb事务回滚不起作用

由于应用程序异常后未回滚的事务,我的团队遇到了问题。我创建了一个配置,以便所有属于 Exception 子类的异常都会生成回滚,但配置不起作用。有谁知道我做错了什么?我将休闲配置放在 WEB-INF 内的 ejb-jar 文件中

0 投票
0 回答
137 浏览

java - 将 ejb-jar 描述符应用于抽象类

我有一个带有服务的 weblogic 服务器,我需要根据安装情况以两种不同的方式运行。我的计划是在第一种情况下正常部署,将String变量设置为@Resource ,并在需要两种不同行为的类中使用ejb-jar 描述符(我选择使用限定符),如果我想要第二种情况,则使用在安装过程中计划。

然后我决定使父类抽象,因为我需要它的两个实现,并且我需要将该变量留在那里仍然能够选择行为。但是当我部署服务时,安装程​​序失败,说无法设置该变量。

到目前为止,我尝试的是完全删除ejb-jar并使用默认值设置变量,但是如果我想要第二种行为(或者我不知道该怎么做,则计划无法设置新值)它,这对所有这一切来说都是相当新的,这是完全可能的)。

另一个可能可行的想法是在实现抽象类的类中设置变量,并为每个类使用ejb-jar设置它们,但这可能会增长得太多。

那么,我可以查看任何线索、帮助或文档吗?问题真的是这个类是抽象的还是我在其他地方搞砸了?

我得到的确切错误是:

weblogic.j2ee.dd.xml.AnnotationProcessException:[EJB:015005]会话类型未在会话 bean MyAbstractBean 的部署描述符或注释中设置

我知道这可能意味着我需要在描述符中的会话标签中添加一个类型标签,但相同的 ejb-jar似乎适用于非抽象类,我真的不知道这个类型标签应该是什么。

这是我的ejb-jar:

谢谢!

0 投票
1 回答
198 浏览

jakarta-ee - 是否可以在所有现有 EJB 都在 ejb-jar.xml 中配置的遗留项目中使用 ejb 注释和 CDI

有一个带有最旧 EJB 的遗留代码库,其中所有现有的 EJBS 都在ejb-jar.xml

这通过通过 JNDI 进行搜索来工作。但是,服务器已升级到支持Java EE 7的Weblogic 12.2。因此,当向远程会话 bean注入新的本地 EJB时,我想只使用注释,而不触及现有的 XML 部署描述符。ABean@EJB

但是,有以下错误:

新的本地无状态 ejb 代码如下:

问题:在这种情况下,是否仍然可以使用注释而不是添加新的 EJB ejb-jar.xml