EJB3转换错误(Cannot case to...)

今天又温习EJB3。用Netbeans作了一遍。发现竟然运行不了。靠。难道写了几百遍的东西竟然写错了?检查了一遍,好像没什么错。主要所在Client端lookup的时候能找到jndi资源。但是说我类型转换错误。查资料。看以前的代码。没发现什么异常。代码如下:
InitialContext ctx  =   new  InitialContext();
Local Interface 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。第一段代码可以运行了。
不过还是有问题。不知道如果不定义的话默认是什么。为什么默认的不行。不得而知。没有帮助文档。各位有资料的话请告诉我阿。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值