Hello,friends!

loocao

myJavaWorld

BlogJava 首页 新随笔 联系 聚合 管理
  13 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
今天又温习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 发表评论

文章来源:http://www.blogjava.net/phyeas/archive/2008/09/04/227031.html
posted on 2008-09-04 18:09 loocao 阅读(198) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: