难道没有用过Jboss绑定jndi的么

解决方案 »

  1.   

    oracle-ds.xml改完后要放到  JBoss 4.0\server\default\deploy下的
    还有你获取数据源的语句没错吧?
      

  2.   

    终于有人回答了!
    这个我做了,而且按网上写的jsp测试连接都可以成功,但是我自己的一个应用,其中使用jndi的方式连接数据库,就是提示没有绑定好,真是晕,有知道怎么解决的么
      

  3.   

    确认一下,你使用的JNDI名字应该是:
    “java:comp/env/jdbc/DataSource”
      

  4.   

    呵呵,同意楼上的,JBOSS和TOMCAT使用JINI时配置数据源是不一样的,注意下。
      

  5.   

    可能是我没有说清楚
    看过jobss关于数据源的绑定,在deploy目录下的一个xml文件,会绑定到服务器上,比如:   
      <datasources>   
          <local-tx-datasource>   
              <jndi-name>OracleDS</jndi-name>   
              <connection-url>jdbc:oracle:thin:@youroraclehost:1521:yoursid</connection-url>   
              <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>   
              <user-name>x</user-name>   
              <password>y</password>   
              <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>   
                    <metadata>   
                        <type-mapping>Oracle9i</type-mapping>   
                  </metadata>   
          </local-tx-datasource>   
      </datasources>   
      上述内容可以通过查找名为:OracleDS的jndi获取并使用。   
        
      我需要在服务器上绑定一个自定义的jndi,类似与这样:   
          <jndi-name>MyJNDI</jndi-name>   
          <jndi-value>abcdefg</jndi-value>   
      我想自己能查找并使用MyJNDI,该如何做,请兄弟们多指教
      

  6.   

    你的意思是配置多个数据源?没有问题:<datasources>
    <local-tx-datasource>
    <jndi-name>OracleDS</jndi-name>
       ……
    </local-tx-datasource><local-tx-datasource>
    <jndi-name>AnotherOracleDS</jndi-name>
       ……
    </local-tx-datasource>
    </datasources> 用法相同。
      

  7.   

    应用是spring架构的,在applicationContext.xml中设置了
    <!--与数据库有关的配置-->
    <bean id="JDBCConfigue" class="org.loushang.waf.BaseBeanConfigue">
    <property name="mappingResources">
    <list>
    <value>/conf/jdbcSupport.xml</value>
    </list>
    </property>
    </bean>jdbcSupport.xml文件中则是用了jndi的连接方式
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName"><value>jdbc/myapp</value></property>
    <property name="inContainer"><value>true</value></property>
    </bean>因此我在oracle-ds.xml中改写为
    <datasources>
      <local-tx-datasource>
        <jndi-name>jdbc/myapp</jndi-name>
        <connection-url>jdbc:oracle:thin:@localhost:1521:jkdb</connection-url>    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
        <user-name>admin</user-name>
        <password>password</password>    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
    <metadata>
    <type-mapping>Oracle9i</type-mapping>
    </metadata>
      </local-tx-datasource>
    </datasources>启动时,加载[/conf/jdbcSupport.xml]完成
    但是系统登录连接数据库时,就提示“获取监控数据源连接错误,尝试获取默认的数据库连接源。Factory bean 'dataSource' returned null object - possible cause: not fully initialized due to circular bean reference”
    “获取默认的数据源连接dataSource错误,Factory bean 'dataSource' returned null object - possible cause: not fully initialized due to circular bean reference”请求大家看看是怎么回事
      

  8.   

    在D:\jboss-4.0.5.GA\server\default\deploy下建一个类似oracle-ds.xml的配置文件,叫my-ds.xml,修改其中的内容 ,注意<jndi-name>改成你自己唯一的。在D:\jboss-4.0.5.GA\server\default\conf下,修改login-config.xml,增加一个<application-policy>,注意<module-option></module-option>里面那个name改成你先前配置的jndi name..............................我想这样应该就可以了吧