Java 类路径上多个jndi.properties的排序
我有一个jboss web服务,它获取了错误的初始上下文。我希望它使用服务根目录中的Java 类路径上多个jndi.properties的排序,java,jboss,jndi,Java,Jboss,Jndi,我有一个jboss web服务,它获取了错误的初始上下文。我希望它使用服务根目录中的jndi.properties中的java.naming.factory.initial,而不是jbossjndi.properties中的NamingContextFactory中的。在ant构建文件中,我将jndi.properties放在类路径中,并确保它复制到归档文件中,但服务仍然获得NamingContextFactory。如何判断使用了哪个jndi.properties,以便正确设置工厂 不幸的情况是
jndi.properties
中的java.naming.factory.initial
,而不是jbossjndi.properties中的NamingContextFactory
中的。在ant构建文件中,我将jndi.properties
放在类路径中,并确保它复制到归档文件中,但服务仍然获得NamingContextFactory
。如何判断使用了哪个jndi.properties
,以便正确设置工厂
不幸的情况是,我必须使用一个第三方jar,它期望它的初始上下文工厂是在其打包的jndi.properties
文件中指定的,但是当我在jboss中运行它时,它会得到NamingContextFactory
。我无法更改jbossjndi.properties
文件而不破坏所有内容。如果类路径的根目录中有多个jndi.properties
文件,则InitialContext
将尝试合并这两个文件,但哪一个获胜多少是个机会
如果您想确保,那么InitialContext
有一个构造函数,它接受属性的哈希表,您可以在其中显式指定它们。在这种情况下,这比通过jndi.properties
隐式加载更可取。您始终可以将目标jndi.properties
加载到properties
对象(它是哈希表的子类)
,并将其传递给构造函数。编辑了我的帖子,其中包括我不控制第三方库所做的初始上下文请求…:(您可能需要执行一些JBoss类加载练习。JAR是耳朵的一部分还是战争的一部分?