Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1165791
  • 博文数量: 1310
  • 博客积分: 3980
  • 博客等级: 中校
  • 技术积分: 8005
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-09 22:05
文章分类

全部博文(1310)

文章存档

2011年(1)

2008年(1309)

我的朋友

分类:

2008-11-09 15:53:41

今天又温习EJB3。用Netbeans作了一遍。发现竟然运行不了。靠。难道写了几百遍的东西竟然写错了?检查了一遍,好像没什么错。主要所在Client端lookup的时候能找到jndi资源。但是说我类型转换错误。查资料。看以前的代码。没发现什么异常。代码如下:
InitialContext ctx = new InitialContext();
LocalInterface bean=(LocalInterface)ctx.lookup("bean/local");
//..执行调用
Localnterface是随便起的。代表本地接口。根据EJB3教程上说的。在同一JVM上调用,创建InitialContext时可不用传如Properties。检查了N遍也不知道哪错。于是。很无奈地复制原先的测试程序过来。竟然成功了。靠。程序如下:
Properties prop=new Properties();
prop.put(Context.PROVIDER_URL,"localhost");
InitialContext ctx 
= new InitialContext(prop);
LocalInterface bean
=(LocalInterface)ctx.lookup("bean/local");
//..执行调用
这让我想到了传于不传Properties的区别。原来如果不传Properties。它会去读取服务器上一个叫jndi.properties的文件。该文件默认所没有java.naming.provider.url的定义的。于是我在该文件内定义了java.naming.provider.url=localhost。第一段代码可以运行了。
不过还是有问题。不知道如果不定义的话默认是什么。为什么默认的不行。不得而知。没有帮助文档。各位有资料的话请告诉我阿。


phyeas 2008-09-04 18:09 发表评论
阅读(201) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~