2015-10-28 75 views
1

这是我的mysql-ds.xml文件:在Spring应用程序从JBOSS 4.2.3配置JNDI数据源

<?xml version="1.0" encoding="UTF-8"?> 
<datasources> 
    <local-tx-datasource> 
     <jndi-name>jdbc/DefaultDS</jndi-name> 
     <connection-url>jdbc:mysql://localhost:3306/usuarios</connection-url> 
     <driver-class>com.mysql.jdbc.Driver</driver-class> 
     <user-name>root</user-name> 
     <password>da</password> 
     <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name> 
     <metadata> 
    <type-mapping>mySQL</type-mapping> 
    </metadata> 
    </local-tx-datasource> 
</datasources> 

,这是我在context.xml中

<beans> 
<bean name="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName"> 
     <value>jdbc/DefaultDS</value> 
    </property> 
</bean> 

这是正确的方法吗?当我运行我的JUnit测试出现此错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [context.xml]: Invocation of init method failed; nested exception is javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 

这是我的这个网站感谢第一个问题。

回答

0

我想你需要的 “java:JDBC/DefaultDS的”

所以bean定义会是什么样子:

<bean name="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName"> 
     <value>java:jdbc/DefaultDS</value> 
    </property> 
</bean> 
+0

添加了resourceRef财产也应该解决这个问题。 这告诉bean在JEE容器中查找DS –

相关问题