繁体   English   中英

如何在Jboss 7中使用jndi数据源

[英]How to use jndi datasource in Jboss 7

在Jboss 5中,我将数据源用于远程DB,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<datasources>
    <local-tx-datasource>
         <jndi-name>dsName</jndi-name>
          ...
         <connection-url>jdbc:oracle:thin:@xxx:2074:xx</connection-url>
    </local-tx-datasource>
</datasources>

我以这种方式从applicationContext.xml调用:

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

在Jboss7中可以做到吗? 在这些文章中, JBoss 7.1-声明数据源和通过JNDI https://developer.jboss.org/thread/196876进行 访问

我发现

谢谢

WildFly(和AS7)不支持远程数据源查找,我认为这是一个故意的决定。 如果您在适用的较旧版本上使用它,则很容易造成可怕的性能问题,大量服务器端内存泄漏等。

拥有一个的用例是什么? 最好的选择通常是将数据逻辑封装在由DB在服务器端进行工作的EJB中,然后从客户端调用它。

来源讨论

那就是说,我不确定您是否真的在尝试使用“远程”数据源查找。 查看有关数据源配置基础的指南。

使用JBoss 7 JNDI和Spring创建数据源

AS 7中的数据源配置

我得到

使用URL [file:... applicationContext.xml]中定义的名称为'dataSource'的bean创建时出错:调用init方法失败; 嵌套的异常是javax.naming.CommunicationException:无法连接到任何服务器。 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1708)上尝试的服务器:[远程://本地主机:4447(java.net.ConnectException:连接被拒绝:没有更多信息)]

它仅在我以这种方式配置数据源时才有效:

        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
           <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
               <property name="url"  >
                  <value>...</value>
               </property>
               <property name="username"  >
                  <value>...</value>
               </property>
               <property name="password"  >
                  <value>...</value>
               </property>


         </bean>

没有jndi,直接在applicationContext.xml中

谢谢

暂无
暂无

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

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