论坛首页 Java企业应用论坛

使用JNDI查找JBOSS内配置好的数据源遇到的问题

浏览 5306 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-04  

这应该是很多J2EE新手都会碰到的问题,我在做一个J2SE中调用EntityManager学习JPA的小例子,遇到了不少异常信息

 

其中一个问题就是,运行Main程序时拿不到MySqlDS的配置,

 

google的一堆文章之后,在这篇帖子中找到的想要的答案 http://www.theserverside.com/discussions/thread.tss?thread_id=29813

 

 

总结一下就是JBoss默认将数据源绑定在本地JNDI命名空间下,所以不能从JBoss运行的JVM之外查找到改数据源,要解决这个问题就是配置JBoss将数据源绑定在全局命名空间下。

这个在dataSource的配置文件中指定,以MySql为例,就是在修改${JBOSS_HOME}/server/default/deploy/mysql-ds.xml

 

在<jndi-name>MySqlDS</jndi-name>下面一行添加 <use-java-context>false</use-java-context>

 

下面截取了JBoss此时打印出的一段日志,可以明显看到我们要的结果生效了

 

*** CONTEXTS IN ERROR: Name -> Error

persistence.unit:unitName=#HelloTitan -> javax.naming.NameNotFoundException: MySqlDS not bound


14:29:24,589 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080
14:29:24,693 INFO  [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
14:29:24,709 INFO  [ServerImpl] JBoss (Microcontainer) [5.0.0.GA (build: SVNTag=JBoss_5_0_0_GA date=200812042120)] Started in 1m:768ms
14:35:10,011 INFO  [ConnectionFactoryBindingService] Unbound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=MySqlDS' from JNDI name 'java:MySqlDS'
14:35:10,222 INFO  [WrapperDataSourceService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=MySqlDS' to JNDI name 'MySqlDS'

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics