LocalHomeProxy.invoke Exception

03-09-14 seamon
向各位请教一个问题。

在jboss4dr2下调试local ejb,出现如下错误:

java.lang.NullPointerException

at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:111)

at $Proxy0.findByPrimaryKey(Unknown Source)

at name.seamon.gpt.test.UserTest.findByPrimaryKey(UserTest.java:96)

只要是调用home接口的函数,就会有这个错误。但remote inferface没有问题。findByPrimaryKey的参数是string。

是不是jboss里的local调用还要通过一个proxy?机理是什么?

恳请赐教。

seamon
2003-09-14 19:28
搜遍了整个网络,就找到一条类似的贴子。在jboss的老家。

http://www.jboss.org/thread.jsp?forum=47&thread=36769&message=3793199&q=LocalHomeProxy#3793199

是一个德国人发的。但紧接着他又跟贴说他已经解决了,却不说是怎么解决的。语焉不详。靠。

seamon
2003-09-15 13:41
怎么没有人回答?是我对这个问题表述不清?还是信息不全?这个问题太难?抑或太蠢?

banq
2003-09-15 14:02
你的程序UserTest.findByPrimaryKey(UserTest.java:96)

第96行出错,你打印key的值出来看看,你要根据查询的key这个值可能是空的。

seamon
2003-09-16 21:02
谢谢您。

我又仔细地检查了一遍,该行中没有变量为null。

我是这样进行的。

我用JB9建了一个简单的remote interface的EJB,发布至本地jboss服务器,然后用EJB Test Client向导生成一个application,在main中加入一个findByPrimaryKey,再加入一个getUsername(都是接口函数),系统测试正常,数据正确显示。

但当我将EJB改为local interface,然后再将client中的UserRemote改为User使之相匹配再进行测试的时候,却出现了上面的错误。

而我在一个jsp中使用相同的客户端代码进行测试却运行良好。

我的jboss安装在本地,JB9中的client难道不能调用本地deploy的local ejb吗?追踪到出错的class,显示其函数的语句为return null。是不是这个函数没有完成?还是不能这样调用local接口?

试解惑之。非常感谢。

猜你喜欢