java - 类路径上多个 jndi.properties 的排序

标签 java jboss jndi

我有一个获取错误初始上下文的 jboss 网络服务。我希望它使用服务根目录中 jndi.properties 中的 java.naming.factory.initial 而不是 jboss jndi.propertiesNamingContextFactory。在 ant 构建文件中,我将 jndi.properties 放在类路径中,并确保它复制到存档中,但服务仍然获取 NamingContextFactory。我如何判断使用了哪个 jndi.properties 以便正确设置工厂?

不幸的是,我有一个第三方 jar,我必须使用它,它期望它的初始上下文工厂是在其打包的 jndi.properties 文件中指定的工厂,但是当我在 jboss 中运行它时它获取 NamingContextFactory。我无法更改 jboss jndi.properties 文件而不破坏所有内容。

最佳答案

如果在类路径的根目录中有多个 jndi.properties 文件,那么 InitialContext 将尝试合并这两个文件,但哪个更胜一筹更少的机会问题。

如果您想确定,InitialContext 有一个构造函数,该构造函数采用 Hashtable 属性,您可以在其中明确指定它们。在这种情况下,这比通过 jndi.properties 进行隐式加载更可取。您始终可以将目标 jndi.properties 加载到 Properties 对象(它是 Hashtable 的子类),并将其传递给构造函数。

关于java - 类路径上多个 jndi.properties 的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2367198/

相关文章:

java - 将 JBPM 5.3 部署到 JBoss 7.1.1 时出现警告

JBOSS - 事务未激活错误

tomcat - 我如何通过 jndi 将 Crystal Reports 2011 与 apache tomcat 7 连接起来?

java - 在java中打开新的动态Web项目

java - 如何获取jtextpane中特定位置的前景色

java - 每次测试后需要重启JBoss

jpa - OpenJpa 和 JNDI

java - 正则表达式吃得太多了

java - Jackson 在我的 Spring Boot 应用程序中忽略了 spring.jackson.properties

jakarta-ee - JNDI 查找不适用于 EJB 3.x