我在weblogic 中布置了rmi 并且启动也成功了,但是。。。 解决了多多给分。

x2j000001 2003-09-23 03:32:07
我在weblogic 中布置了rmi 并且启动也成功了,但是。。。
一个远程方法(在接口中声明的方法)savefile(File f)一个本地方法(lsavefile(File f))(没有在接口中生命)实现同样的功能,客户端程序分别调用本地方法和远程方法
调用本地方法正常执行,调用远程方法抛出下列异常

<2003-9-23 上午10时30分57秒> <Error> <kernel> <000802> <ExecuteRequest
java.lang.NullPointerException
java.lang.NullPointerException
at weblogic.rmi.internal.BasicServerRef.associateTxContext(Bas
f.java:372)
at weblogic.rmi.internal.ReplyOnError.execute(ReplyOnError.jav
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:15
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>
同样的程序在jb中执行rmiregistry 后在执行server 在执行client调用远程方法正常。
这是为什么呢?
...全文
98 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
x2j000001 2003-09-24
  • 打赏
  • 举报
回复
接口类:
package com.borland.samples.rmi;
import java.io.*;

public interface SimpleRMIInterface extends java.rmi.Remote
{
public String savefile(File fname) throws java.rmi.RemoteException;
}
实现类中的方法实现:
public String savefile(File fname) throws RemoteException
{
String returnstr="default";
try{
filerw = new readwritefile(fname,"test1.java");//fname是由客户端传过来的,test1.java是由服务器程序生成的内容与fname文件一样的文件
returnstr=filerw.readandwfile(); //执行从fname中读数据,然后在写到test1.java中的操作方法
}catch(Exception e)
{

}
return returnstr;
}
//这个是我在服务器类中加的一个本地方法实现与上面的一样的功能。
public String cfiledo(File fname) {
String returnstr = "default";
try {
filerw = new readwritefile(fname, "test1.java");
System.out.println(fname);
returnstr = filerw.readandwfile();
}
catch (Exception e) {
e.printStackTrace();
returnstr = "savefile:" + e.toString();
}
return returnstr;

}

客户端程序:
public static void main(String[] argv) {
String serverName = "";
String oldname = argv[1];
URI u1=null;
System.setSecurityManager(new RMISecurityManager());
if (argv.length < 1) {
try {
serverName = java.net.InetAddress.getLocalHost().getHostName();
System.out.println(serverName);
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
serverName = argv[0];
}

if (serverName == "") {
System.out.println(
"usage: java SimpleRMIClient <IP address of host running RMI server>");
System.exit(0);
}

try {
//bind server object to object in client
HelloServerInter myServerObject = (HelloServerInter) Naming.lookup(
"rmi://localhost:7001/HelloServer");
oldname = "d:\\test.java";
File f = new File(oldname);
HelloServer hs = new HelloServer();
System.out.println(hs.cfiledo(f)); //调用本地方法,正常执行
try {
System.out.println(myServerObject.savefile(fname));、、调用远程方法抛出异常
}
catch (Exception e) {

}

}
catch (Exception e) {
System.out.println("Exception occured: " + e);
System.out.println(e.toString());
System.out.println("ddd");
System.exit(0);
}
System.out.println("RMI connection successful");
}


flyshp 2003-09-23
  • 打赏
  • 举报
回复
NullPointerException

空指针 异常原因和多

你的源代码 简要的贴出来吧!

1,220

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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