不好意思看错了,是注册数据源出现Can only bind References or Referenceable objects
解决方案 »
- 图片显示问题
- 假如我数据库里一条数据的内容改变了 怎样监听呢?
- 100分求助:org.hibernate.exception.GenericJDBCException: could not execute query
- hibernate错误的原因
- java开发使用的框架、技术
- 请问weblogic的这个警告是什么意思,要怎么解决
- tomcat ssl问题,请大家帮忙啊 “即将通过安全连接查看网页,该网站上的其他任何人都无法看到您与该站点的交换信息。”
- 请高手推荐几本J2EE方面的书籍
- 这个是Habase里一个通过输入日期查询任务记录的函数,我现在想把他重载成可以通过输入String型任务编码guid和int型任务状态status来查询,怎么改
- web项目一般localhost:8080/项目名,可是spring mvc框架的项目,为什么就直接8080后面加项目里面的一些名字了?
- 哪位能给说说如何控制JBoss热部署很多jar时,如何来控制部署的顺序!
- Jboss上传图片的问题
import javax.naming.*;
import javax.naming.spi.*;
import java.util.Hashtable;
import com.sun.jndi.fscontext.RefFSContextFactory;public class DataSourceJNDI {
public static void main(String args[]) throws NamingException, SQLException {
// 初始化名称服务环境
Context ctx = null;
try {
Hashtable env = new Hashtable(5);
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:JNDI");
ctx = new InitialContext(env);
} catch (NamingException ne) {
ne.printStackTrace();
} bind(ctx, "jdbc/chidb");
lookup(ctx, "jdbc/chidb"); }
static void bind(Context ctx, String ln) throws NamingException,
SQLException {
// 创建一个OracleDataSource实例
org.apache.commons.dbcp.BasicDataSource bds = new org.apache.commons.dbcp.BasicDataSource();
bds.setDriverClassName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
bds.setUsername("sa");
bds.setPassword("resume");
bds.setUrl("jdbc:microsoft:sqlserver://219.217.52.54:1433;DatabaseName=test"); // 把OracleDataSource实例注册到JNDI中
System.out.println("Doing a bind with the logical name : " + ln);
ctx.bind(ln, bds);
System.out.println("Successfully bound");
} static void lookup(Context ctx, String ln) throws NamingException,
SQLException {
// 从JNDI中查询OracleDataSource实例
System.out.println("Doing a lookup with the logical name : " + ln);
org.apache.commons.dbcp.BasicDataSource ods = (org.apache.commons.dbcp.BasicDataSource) ctx
.lookup(ln);
System.out.println("Successful lookup"); // 从查询到的OracleDataSource实例中获取数据库连接
Connection conn = ods.getConnection();
// 进行数据库操作
if (null != conn)
System.out.println("ok");
// 关闭连接
conn.close();
conn = null;
}
javax.naming.OperationNotSupportedException: Can only bind References or Referenceable objects
at com.sun.jndi.fscontext.RefFSContext.addObjectToBindings(RefFSContext.java:479)
at com.sun.jndi.fscontext.RefFSContext.bindObject(RefFSContext.java:337)
at com.sun.jndi.fscontext.RefFSContext.bind(RefFSContext.java:169)
at com.sun.jndi.fscontext.FSContext.bind(FSContext.java:167)
at javax.naming.InitialContext.bind(Unknown Source)
at testconn.DataSourceJNDI.bind(DataSourceJNDI.java:46)
at testconn.DataSourceJNDI.main(DataSourceJNDI.java:31)
Exception in thread "main"
为什么试图绑定数据源的时候不行呢
————------这是接口定义规则
至于出错信息,原始出错在自定义代码at testconn.DataSourceJNDI.bind(DataSourceJNDI.java:46)