简体   繁体   English

在Spring应用程序中从JBOSS 4.2.3配置JNDI数据源

[英]configuring a JNDI Datasource from JBOSS 4.2.3 in a Spring application

this is my mysql-ds.xml file: 这是我的mysql-ds.xml文件:

    <?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>

and this is my bean in context.xml 这是我在context.xml中的bean

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

this is the correct way? 这是正确的方法吗? this error occurs when i run my junit Test 当我运行我的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

this is my first question in this site thanks. 这是我在本网站上的第一个问题,谢谢。

I think you need "java:jdbc/DefaultDS" 我认为您需要“ java:jdbc / DefaultDS”

So the bean definition would look like: 因此,bean定义如下所示:

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

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

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