java - JNDI 命名唯一性?

标签 java spring wildfly jndi wildfly-10

EJB 的 JNDI 名称是否必须是唯一的?

我的代码中的两个 EJB 引用同一个远程文件,因此它具有相同的 JNDI 名称 抛出此异常

Invocation of init method failed; javax.naming.NamingException wildfly

BEAN 和 Remote 位于两个不同的 jar 中

最佳答案

这取决于部署。 JNDI 名称仅对于相同的 Jave EE 模块必须是唯一的。因此,如果一个 EAR 中有两个 ejb-jar 文件,每个文件都会有自己的命名空间,并且您可以以

格式引用它们

java:namespace/[应用程序名称]/模块名称/bean 名称/[!完全限定接口(interface)名称]

如果你将jar部署在.war文件中,那么你的ejb将不是独立的Java EE模块,并且将与.war共享它的JNDI命名空间。

关于java - JNDI 命名唯一性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513805/

相关文章:

java - 通过 java 驱动程序将数据从 MongoDB 转换为原生 MATLAB 格式

java - Maven导入eclipse时不给项目添加依赖jar文件

java - 无法添加或更新子行: a foreign key constraint fails - One-To-Many relationship - Hibernate

java - 完全奇怪的 ClassCastException

java - 将具有本地依赖的 Maven 项目部署到 WildFly

java - MyBatis:java.sql.SQLException:传递给设置或更新方法的 java.sql.Types 常量值 -9 无效

Java 1.8、tomcat 8.5、Jersey 2 - 无法正常工作

mysql - 适用于 H2 和 MySQL 的相对时间查询

java - 如何让 DateTimeFormat 与 Spring MVC 一起工作?

postgresql - 收到类型为 org.postgresql.util.PGobject 的对象