如何在jboss之外通过jndi访问在其中的datasource

private Context getInitialContext() throws NamingException {
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
environment.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
return new InitialContext(environment);
}
public Connection getConnection(String dataSourceName) {
DataSource ds = null;
Connection conn = null;
try {
Context ctx = getInitialContext();
ds = (DataSource) ctx.lookup(dataSourceName);
conn = ds.getConnection();
return conn;
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}
return null;
}
我这样获取连接,在web访问这个bean可以得到数据,可是在jbuilder里直接运行就提示错误: ntsky not bound这样的错误。

我在mysql-ds里配制connection-url的时候,为什么只能用localhost或是127.0.0.1,不能用本地IP,很郁闷。

banq,帮忙解决下咯??

顶,那位大侠解决下?
JNDI这样的问题比较麻烦,你逐步确认JNDI name: ntsky 调用过程。
我是那样的,但就是不能从本地直接运行,后来看了资料也有很多人问怎样的的问题,不过都没有解决方案,不知道是不是真的不行。
Datasource的jndi非全局的,也就是说在Container范围外,是不能访问的。你用JNDI View看一下就知道了。它一定在Java: Namespace中,而不是Global: Namespace中。
那么请问该大侠,我该怎样才能解决这样的问题。
好像不行阿
这个是jboss的注释

<!-- The jndi name of the DataSource, it is prefixed with java:/ -->
<!-- Datasources are not available outside the virtual machine -->


SybaseDB
false

jdbc:sybase:Tds:192.168.0.75:5000/wgtest?charset=eucgb
com.sybase.jdbc3.jdbc.SybDriver
sa

10 org.jboss.resource.adapter.jdbc.vendor.SybaseExceptionSorter



Sybase