0

我正在使用 JBoss 4.3.0。我正在尝试在服务器中创建一个数据源以连接到 MS SQL 服务器。

我创建了一个文件myapp-mssql-ds.xml并将其放在C:\jboss-4.3.0\server\myapps\deploy目录中。

以下是该文件的内容:

   <datasources>
  <local-tx-datasource>
<jndi-name>jdbc/MyDatasource</jndi-name>
    <connection-url>jdbc:jtds:sqlserver://urlhere</connection-url>

<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
<user-name>myuser</user-name>
<password>mypassword</password>


<min-pool-size>2</min-pool-size>
    <max-pool-size>70</max-pool-size>
    <blocking-timeout-millis>5000</blocking-timeout-millis>
    <idle-timeout-minutes>15</idle-timeout-minutes>

 </local-tx-datasource>
  </datasources>

在Java代码中,我通过以下方式访问它

     DataSource dataSource;
     DAOFactory instance = null;

    String url ="jdbc/MyDatasource";
    try {
        dataSource = (DataSource) new InitialContext().lookup(url);
    } catch (NamingException e) {
        throw new DAOConfigurationException(
            "DataSource '" + url + "' is missing in JNDI.", e);
    }

      instance = new DataSourceDAOFactory(dataSource);

最后,我得到了这个例外,

javax.naming.NameNotFoundException:MyDatasource 未绑定

我错过了什么吗?我是否必须在其他地方进行任何其他条目?

4

1 回答 1

1

JDBC 数据源的 JNDI 名称是相对于java:/上下文绑定的(请参阅此处的文档),因此您只需更改String url = "jdbc/MyDatasource"String url = "java:jdbc/MyDatasource".

或者,您可以将数据源配置为将use-java-context属性设置为false,而无需担心在 JNDI 名称前加上java:.

于 2012-08-10T12:32:06.313 回答