【问题标题】:How to use jndi datasource in Jboss 7如何在 Jboss 7 中使用 jndi 数据源
【发布时间】:2019-09-10 08:30:33
【问题描述】:

在 Jboss 5 中,我使用了远程数据库的数据源,例如:

<?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 - declare datasource and access via JNDI https://developer.jboss.org/thread/196876

我发现“AS7 不支持远程查找数据源。”

谢谢

【问题讨论】:

    标签: java jboss


    【解决方案1】:

    WildFly(和 AS7)不支持远程数据源查找,我认为这是一个深思熟虑的决定。如果你在它工作的旧版本上使用它,很容易产生可怕的性能问题、大量的服务器端内存泄漏等等。

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

    Source discussion

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

    Create DataSource using JBoss 7 JNDI and Spring

    Data Source Configuration in AS 7

    【讨论】:

    • 我试过这样:true 并以这种方式: 但它不起作用
    【解决方案2】:

    我明白了

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

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

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

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-15
      • 2012-07-09
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      相关资源
      最近更新 更多