用sun的deploytools发布ejb提示成功,但运行时却出现错误,请帮忙

iamsoloist 2003-08-05 10:53:23
http://www.javaresearch.org/article/showarticle.jsp?column=2&thread=1406&start=0&msRange=15

我是参照这篇文章进行配置的,配置应该不会出错,发布也正常,但运行时却出现错误!

java.lang.ClassCastException
at com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(Unkno
wn Source)
at javax.rmi.PortableRemoteObject.narrow(Unknown Source)
at Client.main(Client.java:9)

我看该文后面读者的贴子里有一个人出现的错误与我相同,但作者没有给出解决方法。我弄了半天也没弄明白,请大家帮忙,谢谢!

...全文
21 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamsoloist 2003-08-05
  • 打赏
  • 举报
回复
是用的remote接口!

--------------------
//Client.java

/**
* 第四步:
* 定义客户端类。
*/
public class Client
{
public static void main(String[] args)
{
try
{
javax.naming.Context initContext=new javax.naming.InitialContext();
Object obj=initContext.lookup("HelloWorld"); //远程查找,由名字得到对应的对象。

RemoteHome home=(RemoteHome)javax.rmi.PortableRemoteObject.narrow(obj,RemoteHome.class);
RemoteInterface remote=home.create();
String receiveFromRemote=remote.message("Hello,Remote Object!"); //远程方法调用
System.out.println("Client Received From Remote Object: \""+receiveFromRemote+"\"");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

--------------------------
是这句出错了
RemoteHome home=(RemoteHome)javax.rmi.PortableRemoteObject.narrow(obj,RemoteHome.class);


iamsoloist 2003-08-05
  • 打赏
  • 举报
回复
是用的remote接口!

--------------------
//Client.java

/**
* 第四步:
* 定义客户端类。
*/
public class Client
{
public static void main(String[] args)
{
try
{
javax.naming.Context initContext=new javax.naming.InitialContext();
Object obj=initContext.lookup("HelloWorld"); //远程查找,由名字得到对应的对象。

RemoteHome home=(RemoteHome)javax.rmi.PortableRemoteObject.narrow(obj,RemoteHome.class);
RemoteInterface remote=home.create();
String receiveFromRemote=remote.message("Hello,Remote Object!"); //远程方法调用
System.out.println("Client Received From Remote Object: \""+receiveFromRemote+"\"");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

--------------------------
是这句出错了
RemoteHome home=(RemoteHome)javax.rmi.PortableRemoteObject.narrow(obj,RemoteHome.class);


zez 2003-08-05
  • 打赏
  • 举报
回复
你用的是什么接口?
可能是你用的local接口,但你调用的时候不是在一个jvm下,所以出错.换成remote接口应该没问题了...

------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??
iamsoloist 2003-08-05
  • 打赏
  • 举报
回复
两位说得对,是找不到RemoteHome.class,我引用.jar包时,忘了加.jar这个后缀名,所以找不到ejb的配置文件,才出现了这个错误,是我马虎了,我改,第一运行ejb应该让我有个教训,呵呵,谢谢几位的帮助!
搞定,结贴!
pengji 2003-08-05
  • 打赏
  • 举报
回复
应该是Object obj=initContext.lookup("HelloWorld");得到的不是RemoteHome.class引起的!
zez 2003-08-05
  • 打赏
  • 举报
回复
Object obj=initContext.lookup("HelloWorld"); //远程查找,由名字得到对应的对象。
你得到的是什么? HelloWorld对应的是哪个类? 确定是RemoteHome吗??

------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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