Я пытаюсь создать сервер, который может хранить сообщения от клиента в ArrayList, но я не знаю, как правильно сохранить его там. Я создал ArryList на сервере и клиенте, который может отправлять сообщения с использованием reply (), но как его сохранить?
Вот мой код:
Сервер:
public class Server extends UnicastRemoteObject {
private static final long serialVersionUID = 1L;
public ArrayList<String> text;
public Server() throws RemoteException {
}
public static void main(String args[]) throws AlreadyBoundException, SQLException, ClassNotFoundException {
String name = "123";
try {
Registry registry = LocateRegistry.createRegistry(1099);
System.out.println("Server starts...");
ArrayList<String> textRequested = new ArrayList<String>();
textRequested.add("This is first row in table");
ArrayListImpl arrayListToSend = new ArrayListImpl();
arrayListToSend.setText(textRequested);
registry.bind(name, arrayListToSend);
} catch (Exception e) {
System.err.println("Server exception: " + e.getMessage());
e.printStackTrace();
}
}
}
Клиент:
public class Client {
public static void main(String args[]) {
try {
String host = "localhost";
String name = "123";
Registry registry = LocateRegistry.getRegistry(host, 1099);
Echo echo = (Echo) registry.lookup(name);
System.out.println("Sended to server: "+ echo.reply(args[0]));
ArrayList<String> received = echo.getText();
System.out.println(received);
} catch (Exception e) {
System.err.println("Echo exception: " +
e.getMessage());
e.printStackTrace();
}
}
}
ArrayListImpl:
public class ArrayListImpl extends UnicastRemoteObject implements Echo{
private static final long serialVersionUID = 1L;
public ArrayList<String> text;
protected ArrayListImpl() throws RemoteException {
super();
}
public ArrayList<String> getText() {
return text;
}
public void setText(ArrayList<String> text) {
this.text = text;
}
public String reply(String s) {
System.out.println("Server recive a msg: "+s);
return s;
}
}
Эхо:
public interface Echo extends Remote {
String reply(String s) throws RemoteException;
public ArrayList<String> getText() throws RemoteException;
public void setText(ArrayList<String> text) throws RemoteException;
}