繁体   English   中英

问题配置JBoss使用JNDI

[英]problem configure JBoss to work with JNDI

我试图在我的JBoss上运行的应用程序中使用JNDI绑定到数据库的连接。 我做了以下事情:

  1. 我创建了数据源文件oracle-ds.xml ,用相关的xml元素填充它:
 <datasources> <local-tx-datasource> <jndi-name>bilby</jndi-name> ... </local-tx-datasource> </datasources> 

并将其放在文件夹\\ server \\ default \\ deploy中

  1. 添加了相关的oracle jar文件

  2. 比我在我的申请表中所做的:

JndiObjectFactoryBean factory = new JndiObjectFactoryBean();

  factory.setJndiName("bilby"); try{ factory.afterPropertiesSet(); dataSource = factory.getObject(); } catch(NamingException ne) { ne.printStackTrace(); } 

这会导致错误:

javax.naming.NameNotFoundException:bilby没有绑定

然后在发生此错误后的输出中我看到了这一行:

18:37:56,560 INFO [ConnectionFactoryBindingService]绑定ConnectionManager'jb oss.jca:service = DataSourceBinding,name = bilby'到JNDI名称'java:bilby'

那么我的配置问题是什么? 我认为可能是JBoss首先加载并运行我的应用程序的.war文件,然后才加载包含我的数据源定义的oracle-ds.xml。 问题是它们都位于同一个文件夹中。 有没有办法定义加载它们的优先级,或者这可能根本不是问题。

任何想法?

您应该使用这样的构造来调用Datasource:java:bilby。

你可以在这里阅读更多相关信息:

命名和目录(JNDI) - JBOSS jndi数据源:jdbc没有绑定

要检查数据源在JNDI树中的绑定方式,您应该使用jmx-console http:// localhost8080 / jmx-console / HtmlAdaptor?action = inspectMBean&name = jboss%3Aservice%3DJNDIView并调用list()方法。

数据源在“jdbc”下注册。 在你的情况下“jdbc / bilby”

编辑:这是一个没有春天对我有用的例子。 现在发现这个例子注入了一个更完整的JNDI名称。

<bean id="idDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/bilby" />
</bean>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM