gpt4 book ai didi

java - 远程方法调用(RMI)——服务器如何知道客户端调用了什么?

转载 作者:行者123 更新时间:2023-12-01 14:57:51 25 4
gpt4 key购买 nike

我有一个程序,其中有以下类:
RMI服务器,
RMI客户端,
RMI实现,
RMI接口(interface)

如下:

RMI服务器:

public static void main ( String args[] ) throws Exception
{
System.out.println( "RMI Server started" ) ;

String codebase = "http://localhost:8080/rmi/" ;
String name = "RMIInterface" ;

System.setProperty ( "java.rmi.server.codebase" , codebase ) ;

RMIImplementation obj = new RMIImplementation() ;
RMIInterface stub = (RMIInterface) UnicastRemoteObject.exportObject( obj , 0 ) ;

LocateRegistry.getRegistry().bind( name , stub ) ;

System.out.println( "Done!" ) ;

}

RMI客户端:

public static void main ( String args[] ) throws Exception
{
String host = "localhost" ;
String name = "RMIInterface" ;


Registry registry = LocateRegistry.getRegistry( host ) ;
RMIInterface i = (RMIInterface) registry.lookup( name ) ;

System.out.println("RMI service call result:");
for(Candidate c : list){
if(c.status == Candidate.Eligibility.ELIGIBLE ){
System.out.println( " Issued a license to " + i.issueLicense(c.name, c.age) ) ;
}
}

System.out.println( "License Server finished" ) ;
}

RMI接口(interface):

public interface RMIInterface extends Remote
{
String issueLicense ( String name , int age ) throws RemoteException ;
}

RMI实现:

public class RMIImplementation implements RMIInterface {

public RMIImplementation() {
System.out.println("RMIImplementation instance created and ready to serve");
}

@Override
public String issueLicense(String name, int age) {
return name + " (" + age + ")";
}
}

(此程序用于测试目的,测试在一台机器上完成。)

好吧,客户端调用远程对象,发送一些参数。

我希望 RMIServer 打印出从客户端到远程对象的调用的摘要。我应该怎么做才能访问此类信息?

我希望输出如下所示:

RMI Server started
RMIImplementation instance created and ready to serve
RMI service called for :
tonny (30)
john (26)

最佳答案

你的问题到处都是,但你的实际目标是可以实现的

-Djava.rmi.server.logCalls=true

在服务器上。

关于java - 远程方法调用(RMI)——服务器如何知道客户端调用了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com