虚心求教:如何导入properties文件设置Context??

QG_chan 2011-07-30 08:10:49
如题:

如果不用properties文件直接在代码里设置,程序可以运行,部分代码如下:
.....
        
Context ctx = null;
Properties props = new Properties();

props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
props.setProperty(Context.PROVIDER_URL,
"t3://localhost:7001");
props.setProperty(Context.SECURITY_CREDENTIALS, "weblogic08");
props.setProperty(Context.SECURITY_PRINCIPAL, "weblogic");

System.out.println(props.getProperty(Context.INITIAL_CONTEXT_FACTORY));
System.out.println(props.getProperty(Context.PROVIDER_URL));
System.out.println(props.getProperty(Context.SECURITY_CREDENTIALS));
System.out.println(props.getProperty(Context.SECURITY_PRINCIPAL));

try {
ctx = new InitialContext(props);

.......
运行文件一切正常,能正常打印出各键的值

如果使用properties文件就就执行不了了

properties文件内容:

Context.INITIAL_CONTEXT_FACTORY=weblogic.jndi.WLInitialContextFactory
Context.PROVIDER_URL=t3://localhost:7001
Context.SECURITY_CREDENTIALS=weblogic08
Context.SECURITY_PRINCIPAL=weblogic

java部分代码:
.......

Context ctx = null;
Properties props = new Properties();
FileInputStream in = new FileInputStream("src/JDBC/database.properties");
props.load(in);
in.close();
System.out.println(props.getProperty(Context.INITIAL_CONTEXT_FACTORY));
System.out.println(props.getProperty(Context.PROVIDER_URL));
System.out.println(props.getProperty(Context.SECURITY_CREDENTIALS));
System.out.println(props.getProperty(Context.SECURITY_PRINCIPAL));

try {
ctx = new InitialContext(props);

......

运行文件时
打印各键的值均为null,如果给键套上双引号,就能把值打印出来。
但是运行到 ctx = new InitialContext(props);这一段时都会报错
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

有哪位大哥知道是怎么回事吗,该怎么改?



...全文
129 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
QG_chan 2011-07-30
  • 打赏
  • 举报
回复
顺便问问大家在工作时都使用什么服务器,在工作时会用用到上面的方法么??
QG_chan 2011-07-30
  • 打赏
  • 举报
回复

感谢你的回复

我把properties文件改成

INITIAL_CONTEXT_FACTORY=weblogic.jndi.WLInitialContextFactory
PROVIDER_URL=t3://localhost:7001
SECURITY_CREDENTIALS=weblogic08
SECURITY_PRINCIPAL=weblogic

还是不行啊。
Fly_m 2011-07-30
  • 打赏
  • 举报
回复
属性文件里
如果使用properties文件就就执行不了了
properties文件内容:

Context.INITIAL_CONTEXT_FACTORY=weblogic.jndi.WLInitialContextFactory
Context.PROVIDER_URL=t3://localhost:7001
Context.SECURITY_CREDENTIALS=weblogic08
Context.SECURITY_PRINCIPAL=weblogic
这里面的key如Context.INITIAL_CONTEXT_FACTORY修改为Context.INITIAL_CONTEXT_FACTORY对应的值,比如Context.INITIAL_CONTEXT_FACTORY=xxxFactory,那么在属性文件里就写xxxFactory,而不是写Context.INITIAL_CONTEXT_FACTORY这个信息

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧