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

这应该是很多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'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值