Java RMI는 새로운 것으로, 다른 조건으로 학습을 실시하려고하고 있습니다. 나는 무엇을하려고하는지 알맞지 않은지 모른다. 지금까지 클라이언트가 입력을 제공하는 RMI 응용 프로그램을 개발했습니다 & 그 계승을 얻으십시오. 나는 4 개의 클래스를 가지고있다.Java RMI 서버 실행 중에 변수 값을 선언하십시오.
코드와 함께하는 것은 다음과 같습니다.
서버 클래스 - FacServer
import java.rmi.*;
public class FacServer
{
public static void main(String a[]) throws Exception
{
FacImpl obj = new FacImpl();
Naming.rebind("FAC",obj);
System.out.println("Server started");
}
}
클라이언트 클래스 - FacClient
import java.util.*;
import java.io.*;
import java.rmi.*;
public class FacClient
{
public static void main(String a[]) throws Exception
{
FacInt obj = (FacInt)Naming.lookup("FAC");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter a number: ");
String s = null;
try {
s = br.readLine();
} catch(IOException ioe) {
System.err.println(ioe.getMessage());
}
int r = Integer.parseInt(s);
int n= obj.fac(r);
System.out.println("Factorial is "+n);
}
}
구현 클래스 - FacImpl
import java.rmi.server.*;
public class FacImpl extends UnicastRemoteObject implements FacInt
{
public FacImpl() throws Exception
{
super();
}
public int fac(int x)
{
int i,j=1;
for(i=x;i>1;i--)
j=j*i;
return j;
}
}
인터페이스 클래스 - FacInt
import java.rmi.Remote;
public interface FacInt extends Remote
{
public int fac(int x) throws Exception;
}
잘 작동합니다. 이제 서버 측에서 몇 가지 제한을 설정하려고합니다. 예를 들어 서버는 5 이상에 대한 계승 값을 계산하지 않습니다. 구현 클래스에서이를 쉽게 수행 할 수 있습니다. 하지만 서버를 시작할 때이를 선언하고 싶습니다. 예를 들어 한계 5를 설정하려면 다음과 같은 방법으로 서버를 시작해야합니다.
자바 FacServer 5
그래서 클라이언트 입력하면 값이 5 개 이상이 오류 응답을 얻을 것이다. 그렇게 할 수 있습니까?
또한 클라이언트가 허용 된 값을 제공하는 경우 서버 측의 계승 값을 표시 할 수 있습니까?
정말 고마워요. 서버 측에서도 계승 값을 표시 할 수 있습니까? –
예. 일반적으로 RMI에서는 비즈니스 로직을 서버 측 코드에만 작성해야하며 클라이언트 측 코드는 RMIInterface 객체를 사용하여 서버를 찾으려면 작성해야합니다.이 객체는 매개 변수로 전달한 이름과 관련된 원격 객체에 대한 참조를 찾습니다. – utpal416