郁闷死了,关于RMI,200分送给第一个解决问题的人!

Yoinn 2005-11-18 11:31:18
start rmiregistry

java -classpath ./testRmi.jar;%classpath% TestRMIServer

TestRMIServer err: RemoteException occurred in server thread; nested exception i
s:
java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
tion is:
java.lang.ClassNotFoundException: ServiceImpl_Stub

我可以确认在testRmi.jar里面绝对包含ServiceImpl_Stub.class!!

郁闷死了!!
...全文
230 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yoinn 2005-11-18
  • 打赏
  • 举报
回复
我用ant生成的,<rmic base="${dist}/rmi" stubVersion="1.2">......

没有ske文件.class

之后我用ant打成jar包了,

不打jar包也不好用

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

/**
* <H3>ServiceImpl</H3>
*
* @version 1.0, $Revision: $, $Date: $
* @since 1.0
* @author <A HREF="mailto:yoinn@21cn.com">yoinn</A>
*/
public class ServiceImpl extends UnicastRemoteObject implements IService
{

/**
* Comment for <code>serialVersionUID</code>
*/
private static final long serialVersionUID = -7480424871498982L;

/**
* @throws RemoteException
*/
public ServiceImpl() throws RemoteException
{
super();
}

/**
* @param port
* @throws RemoteException
*/
public ServiceImpl(int port) throws RemoteException
{
super(port);
}

/*
* (non-Javadoc)
*
* @see IService#sayHello(java.lang.String)
*/
public void sayHello(String name) throws RemoteException
{
System.out.println("Hello, " + name);
}

}
yck263 2005-11-18
  • 打赏
  • 举报
回复
ServiceImpl_Stub和另外一个ske文件是rmi命令对serviceImpl文件生成的。
不知道你做了没有。
gemouzhi 2005-11-18
  • 打赏
  • 举报
回复
贴ServiceImpl的代码

测试的时候先不用打成jar,
wuzhiqing1984 2005-11-18
  • 打赏
  • 举报
回复
Windows下用:start java -classpath ./testRmi.jar;%classpath% TestRMIServer
Yoinn 2005-11-18
  • 打赏
  • 举报
回复
在我的机器上rmic,之后运行,不好用
把class文件发给 myth822 ,他在他机器上就好用,

晕了!
fbtdjs 2005-11-18
  • 打赏
  • 举报
回复
关注……
myth822 2005-11-18
  • 打赏
  • 举报
回复
我刚才试了一下可以运行
myth822 2005-11-18
  • 打赏
  • 举报
回复
这样 你在用rmic的时候要在src的目录下 而不要在class的目录下

使用rmiregistry也要在这个目录下

运行的时候加上包名
Yoinn 2005-11-18
  • 打赏
  • 举报
回复
有包结构!

我把错误提示中的包结构删掉了

还有我使用RMI,只好用过一次,其它的时候都抛出ClassNotFoundException....Stub

而那唯一的一次是在windows 2000操作系统下

我现在用的是windows xp,我把防火墙关了也不好用;

神啊!!救救我吧!!
myth822 2005-11-18
  • 打赏
  • 举报
回复
你的代码有包结构吗?

Yoinn 2005-11-18
  • 打赏
  • 举报
回复
我在 TestRMIServer 里面加了
System.setSecurityManager(new RMISecurityManager());
不好用

之后又弄了一个server.policy文件,内容如下
grant {
permission java.security.AllPermission "", "";
};

也不好用

同时应用以上两个方法也不好用

都抛出同样的异常!

TestRMIServer err: RemoteException occurred in server thread; nested exception i
s:
java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
tion is:
java.lang.ClassNotFoundException: ServiceImpl_Stub

zealVampire 2005-11-18
  • 打赏
  • 举报
回复
你测试的时候 不大包测试成功先的啊
现在的错误是找不到类。。?

securitymanager还有运行时候弄个policy文件试下 允许开所有端口
gemouzhi 2005-11-18
  • 打赏
  • 举报
回复
噢,我想起来了,应该是securitymanager的问题

你把securitymanager加上.就应该OK了
Yoinn 2005-11-18
  • 打赏
  • 举报
回复
我说的不好用是说也是同样的问题;

java -classpath ./;%CLASSPATH% TestRMIServer

=================================================================

import java.rmi.Naming;

/**
* <H3>TestRMIServer</H3>
*
* @version 1.0, $Revision: $, $Date: $
* @since 1.0
* @author <A HREF="mailto:yoinn@21cn.com">yoinn</A>
*/
public class TestRMIServer
{
/**
* @param args
*/
public static void main(String[] args)
{
try
{
IService service = new ServiceImpl();
Naming.rebind("//localhost/IService", service);
// Naming.rebind("IService", service); 这样也不好用
System.out.println("IService bound in registry");
}
catch (Exception e)
{
System.out.println("TestRMIServer err: " + e.getMessage());
}
}
}

我的MSN: yoinn@21cn.com
gemouzhi 2005-11-18
  • 打赏
  • 举报
回复
不打成jar是为了调试方便,不是好用不好用的问题。

贴你的rebind的代码

67,512

社区成员

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

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