怎么调用jboss的jndi
RT,我就配置了数据源和写了一个java类
Java code
public class JndiTest {
/**
* @param args
*/
public static void main(String[] args) {
Connection conn = null;
try {
Context context = new InitialContext();
DataSource ds = (DataSource) context.lookup("java:myjndi");
conn = ds.getConnection();
if (conn != null) {
System.out.print("hello");
}
} catch (Exception e) {
}
想请问下有经验的朋友,要怎样才能调用jboss的jndi读取查询数据库,最好能举个例子,谢谢!
------解决方案--------------------读取jboss的数据库连接池,得在jboss的web管理界面里面添加,然后就是看context.lookup("java:myjndi");这里的名字是不是java:myjndi,不同的web容器差别比较大,主要是冒号前面的名字
Jboss的连接池个人感觉性能不是很好,而且使用不灵活,还不如用proxool,这个和web容器无关,性能也不错,可以尝试一下
------解决方案--------------------
------解决方案--------------------
单个java类调用 jboss里面的 JNDI
Properties properties=new Properties();
//通过事例的上下文来通过JNDI命名机制查找服务器位置
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
//通过事例的路径查找连接服务器,这里是本机
properties.setProperty(Context.PROVIDER_URL,"127.0.0.1:1099");
context = new InitialContext(properties);
DataSource ds = (DataSource) context.lookup("java:myjndi");
web 工程的话,发布到 jboss里面运行,你就可以在 web.xml里面
<resource-ref>
<description>jndidatasource</description>
<res-ref-name>jboss中jndi名字</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
然后再在程序里面像你那样调用。
------解决方案--------------------4楼正解
------解决方案--------------------4楼正解
------解决方案--------------------
------解决方案--------------------4楼是对的,不过你要看你怎么启动的,启动时用的localhost或外网IP,就不一样了,用了ip就直接用ip,用localhost就是127.0.0.1