我正在使用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未绑定
我错过了什么吗?我是否必须在其他地方制作任何其他条目?
答案 0 :(得分:1)
JDBC数据源的JNDI名称相对于java:/
上下文(see the docs here)绑定,因此您只需将String url = "jdbc/MyDatasource"
更改为String url = "java:jdbc/MyDatasource"
。
或者,您可以将use-java-context
属性设置为false
来配置数据源,而无需担心JNDI名称前缀为java:
。