当前页面: 开发资料首页 → J2EE 专题 → jboss:如何远程查找数据源
jboss:如何远程查找数据源
摘要: jboss:如何远程查找数据源
在jbuilder中运行下面程序,抱错:javax.naming.NameNotFoundException: ssDS not bound
如果用jsp:直接写
InitialContext ctx = new InitialContext();
ctx.lookup();就能找到
猜测是初始化InitialContext的问题,但是找不到原因,请高手指教
public static void getDataSource()
{
try
{
Properties properties = new Properties();
properties.put("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
properties.put("java.naming.provider.url", "jnp://localhost:1099");
properties.put("jjava.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(properties);
DataSource datasource = (DataSource) ctx.lookup("java:/ssDS");
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
楼主利用JNDI方法是正确的 具体的我就不懂了 呵呵 顶一下
oracle-ds.xml中的配置是没问题的,不然用jsp也找不到datasource的
用EJB吧,这个方法比较好
请高手指教啊
你用了localhost, 是否服务器不在本机上?
在本机上
lookup("java:/ssDS");
这一句有问题,是JNDI的可访问性造成的。java:/ssDS不是全局可访问的,只能本地访问,如果你绑定jdni的时候用ssDS,则ssDS是全局可见。用jboss 的jndiview可以看到这种变化。
同意楼上的意见
下面才是正解
In JBoss4 you can bind the ConnectionFactory/DataSource in the global namespace
GenericDS
false
[jdbc: url for use with Driver class]
[fully qualified class name of java.sql.Driver implementation]
x
y
答案来自jboss的wiki,哎,无言,这是我们与别人的差距