当前位置: 技术问答>java相关
求助:jndi为什么找不到我的bean!在线等!急!
来源: 互联网 发布时间:2017-04-13
本文导语: 我用sevlet调用一个实体Bean如下: try{ Context ctx=new InitialContext(); CardTableHome chome = (CardTableHome)ctx.lookup("CardTableBean"); CardTablePK cpk = new CardTablePK(); cpk.name...
我用sevlet调用一个实体Bean如下:
try{
Context ctx=new InitialContext();
CardTableHome chome = (CardTableHome)ctx.lookup("CardTableBean");
CardTablePK cpk = new CardTablePK();
cpk.name = cardname; //一个参数, name为主关键字
CardTable c = chome.findByPrimaryKey(cpk);
if(c==null){
//。。。。。
}
//。。。。。。。。
}catch(Exception e){
System.out.println(e)
}
我得到的报错是
javax.naming.NameNotFoundException: Unable to resolve 'CardTableBean' Resolved: '' Unresolved:'CardTableBean' ; remaining name 'CardTableBean'
CardTableBean是我实体Bean的Local home JNDI name(我用JB7 选local接口,其自己给的)
问:是不是还要配置什么?是不是还有什么和jndi配置有关的?
求教了!!!
try{
Context ctx=new InitialContext();
CardTableHome chome = (CardTableHome)ctx.lookup("CardTableBean");
CardTablePK cpk = new CardTablePK();
cpk.name = cardname; //一个参数, name为主关键字
CardTable c = chome.findByPrimaryKey(cpk);
if(c==null){
//。。。。。
}
//。。。。。。。。
}catch(Exception e){
System.out.println(e)
}
我得到的报错是
javax.naming.NameNotFoundException: Unable to resolve 'CardTableBean' Resolved: '' Unresolved:'CardTableBean' ; remaining name 'CardTableBean'
CardTableBean是我实体Bean的Local home JNDI name(我用JB7 选local接口,其自己给的)
问:是不是还要配置什么?是不是还有什么和jndi配置有关的?
求教了!!!
|
InitialContext();
客户端你不能这样初始化它,你应该加上个方法,比如在你的SERVLET程序里加上:
private Context getInitialContext() throws Exception {
String url = "t3://localhost:7001";
String user = null;
String password = null;
Properties properties = null;
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
}
return new InitialContext(properties);
}
catch(Exception e) {
log("Unable to connect to WebLogic server at " + url);
log("Please make sure that the server is running.");
throw e;
}
}
用这个方法初始化它。
而且,实际中你应该保证你的相关配置文件为最新的。有些临时文件可以手工删除或者刷新。
客户端你不能这样初始化它,你应该加上个方法,比如在你的SERVLET程序里加上:
private Context getInitialContext() throws Exception {
String url = "t3://localhost:7001";
String user = null;
String password = null;
Properties properties = null;
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
}
return new InitialContext(properties);
}
catch(Exception e) {
log("Unable to connect to WebLogic server at " + url);
log("Please make sure that the server is running.");
throw e;
}
}
用这个方法初始化它。
而且,实际中你应该保证你的相关配置文件为最新的。有些临时文件可以手工删除或者刷新。
|
你的CardTableBean部署成功了吗?