我有几个模块现在需要 JNDI。
其中一个模块通过 Apache Tomcat 运行,而其余模块作为 J2SE 应用程序独立运行。
我能够毫无问题地配置使用 tomcat 的模块,我搜索了一下并收集到 JBoss JNP 可以作为一个很好的独立 JNDI 服务器使用。
我不明白的是我如何重用我已经配置的资源定义(对于我的模块,它通过 context.xml 文件中的 tomcat 运行)。
假设我在 XML 文件中定义了以下资源:
<Resource name="jdbc/dataSource" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mchange.v2.c3p0.ComboPooledDataSource"
url="jdbc:sqlserver://******
username="**" password="**"/>
启动JNP的相关代码是:
System.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
System.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
NamingBeanImpl jnpServer = new NamingBeanImpl();
jnpServer.start();
如何让 InitialContext
实例识别 jdbc/dataSource
绑定(bind)?
最佳答案
我认为你做不到。 您可能可以在 jboss 命名上下文中定义您的 jdbs 资源,并在您的 tomcat 网络应用程序中查找它。
更多信息在这里:http://www.amitysolutions.com.au/documents/JBossTomcatJNDI-technote.pdf
关于java - JBoss JNP 作为独立服务器并使用来自 tomcat 的 context.xml 的资源配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4177522/