Java RMI প্রজেক্ট সফলভাবে চালানোর জন্য RMI Registry চালু করতে হয়, যেখানে রিমোট অবজেক্টগুলো রেজিস্টার করা হয়। RMI Registry একটি naming service হিসেবে কাজ করে, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ স্থাপন করে। নিচে RMI Registry স্টার্ট করা এবং RMI প্রজেক্ট রান করার ধাপগুলো বিশদে আলোচনা করা হলো।
RMI Registry স্টার্ট করার ধাপ
rmiregistryকমান্ড ব্যবহার করা:
RMI Registry চালু করার জন্যrmiregistryকমান্ড ব্যবহার করা হয়।rmiregistryNote:
- এই কমান্ড চালানোর আগে নিশ্চিত করুন যে আপনি RMI সার্ভার ক্লাস ফাইল সংরক্ষিত ডিরেক্টরিতে আছেন।
- ডিফল্ট পোর্ট 1099 এ RMI Registry স্টার্ট হয়।
কাস্টম পোর্টে RMI Registry চালানো (ঐচ্ছিক):
rmiregistry 5000এখানে 5000 একটি কাস্টম পোর্ট নম্বর।
- Windows এবং Linux উভয় প্ল্যাটফর্মে প্রাসঙ্গিক কমান্ড ব্যবহার:
Windows:
start rmiregistryLinux/Mac:
rmiregistry &(& চিহ্নটি ব্যাকগ্রাউন্ডে কমান্ড চালানোর জন্য ব্যবহৃত হয়।)
RMI প্রজেক্ট রান করার ধাপ
একটি RMI প্রজেক্ট রান করার জন্য তিনটি ধাপে কাজ করতে হয়: Server, Registry, এবং Client।
১. RMI প্রজেক্ট তৈরির স্টেপ-বাই-স্টেপ গাইড
Step 1: Remote Interface তৈরি করা
রিমোট মেথডের ডেফিনেশন রিমোট ইন্টারফেসে থাকবে।
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface MyRemote extends Remote {
String sayHello() throws RemoteException;
}
Step 2: Remote Object বাস্তবায়ন করা
রিমোট ইন্টারফেসের মেথডগুলোর ইমপ্লিমেন্টেশন থাকবে।
import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote {
public MyRemoteImpl() throws RemoteException {
super();
}
@Override
public String sayHello() {
return "Hello from RMI Server!";
}
}
Step 3: RMI Server তৈরি করা
রিমোট অবজেক্ট রেজিস্টারে রেজিস্টার করতে হবে।
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class RMIServer {
public static void main(String[] args) {
try {
MyRemoteImpl obj = new MyRemoteImpl();
Registry registry = LocateRegistry.createRegistry(1099);
registry.bind("HelloService", obj);
System.out.println("RMI Server is running...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Step 4: RMI Client তৈরি করা
ক্লায়েন্ট সার্ভার থেকে রিমোট মেথড কল করবে।
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class RMIClient {
public static void main(String[] args) {
try {
Registry registry = LocateRegistry.getRegistry("localhost", 1099);
MyRemote remoteObj = (MyRemote) registry.lookup("HelloService");
System.out.println(remoteObj.sayHello());
} catch (Exception e) {
e.printStackTrace();
}
}
}
২. RMI প্রজেক্ট কম্পাইল ও রান করা
Step 1: প্রজেক্ট কম্পাইল করা
সমস্ত .java ফাইলকে কম্পাইল করতে হবে।
javac *.java
Step 2: Remote Object Stub এবং Skeleton তৈরি করা
rmic কমান্ড ব্যবহার করে Stub এবং Skeleton তৈরি করুন।
rmic MyRemoteImpl
Step 3: RMI Registry স্টার্ট করা
rmiregistry
এটি আলাদা একটি টার্মিনালে চালু করতে হবে।
Step 4: RMI Server রান করা
java RMIServer
Step 5: RMI Client রান করা
java RMIClient
RMI রান করার সময় সাধারণ সমস্যার সমাধান
java.rmi.NotBoundException:
এই সমস্যা হলে নিশ্চিত করুন যে রিমোট অবজেক্ট সঠিক নাম দিয়ে রেজিস্টার করা হয়েছে এবং ক্লায়েন্টে একই নাম ব্যবহার করা হয়েছে।java.rmi.ConnectException:
RMI Registry চালু আছে কিনা তা নিশ্চিত করুন এবং সার্ভার সঠিক পোর্টে কানেক্ট করছে কিনা পরীক্ষা করুন।- Classpath সংক্রান্ত সমস্যা:
নিশ্চিত করুন যে সকল ক্লাস ফাইল একই classpath এ রয়েছে।
RMI Registry হলো RMI প্রযুক্তির কেন্দ্রীয় অংশ, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে রিমোট অবজেক্ট পরিচালনা করে। RMI প্রজেক্ট সফলভাবে চালাতে RMI Registry সঠিকভাবে স্টার্ট করা এবং সঠিক ক্রমানুসারে Server এবং Client চালানো অত্যন্ত গুরুত্বপূর্ণ।
Read more