creato rmi counter. verifica blanda di errori di input
This commit is contained in:
15
rmi_counter/CounterInterface.java
Normal file
15
rmi_counter/CounterInterface.java
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package rmi_counter;
|
||||||
|
|
||||||
|
import java.rmi.Remote;
|
||||||
|
import java.rmi.RemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Giovanni on 16/11/2014.
|
||||||
|
*/
|
||||||
|
public interface CounterInterface extends Remote{
|
||||||
|
|
||||||
|
int getvalue (String from) throws RemoteException;
|
||||||
|
int sum (String from, int value) throws RemoteException;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
64
rmi_counter/LaunchClient.java
Normal file
64
rmi_counter/LaunchClient.java
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
package rmi_counter;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.rmi.Naming;
|
||||||
|
import java.rmi.NotBoundException;
|
||||||
|
import java.rmi.RemoteException;
|
||||||
|
import java.rmi.registry.LocateRegistry;
|
||||||
|
import java.rmi.registry.Registry;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Giovanni on 16/11/2014.
|
||||||
|
*/
|
||||||
|
public class LaunchClient {
|
||||||
|
private static Logger l =Logger.getLogger("counterclientlogger");
|
||||||
|
|
||||||
|
public static void main (String args[]) {
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
CounterInterface rc = (CounterInterface) Naming.lookup("rmi://localhost/Counter");
|
||||||
|
BufferedReader i = new BufferedReader(new InputStreamReader(System.in));
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
l.info("Commands:current,sum <value>,any other to quit");
|
||||||
|
String command = LaunchClient.cmd(i);
|
||||||
|
l.info(command);
|
||||||
|
if (command.equals("current")) {
|
||||||
|
l.info(rc.getvalue("Client1") + "");
|
||||||
|
} else if ( command.length()>=3 && command.substring(0,3).equals("sum")) {
|
||||||
|
int value = Integer.parseInt(command.substring(4));
|
||||||
|
l.info(String.valueOf(rc.sum( "Client1",value )));
|
||||||
|
} else {
|
||||||
|
l.info("quitting");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (NotBoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static String cmd (BufferedReader i ){
|
||||||
|
try {
|
||||||
|
String input = i.readLine();
|
||||||
|
return input;
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
63
rmi_counter/LaunchServer.java
Normal file
63
rmi_counter/LaunchServer.java
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
package rmi_counter;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.rmi.RemoteException;
|
||||||
|
import java.rmi.registry.LocateRegistry;
|
||||||
|
import java.rmi.registry.Registry;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Giovanni on 16/11/2014.
|
||||||
|
*/
|
||||||
|
public class LaunchServer {
|
||||||
|
private static Logger l =Logger.getLogger("counterlogger");
|
||||||
|
|
||||||
|
public static void main (String args[]) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
RemoteCounter rc = new RemoteCounter(0);
|
||||||
|
Registry r = LocateRegistry.getRegistry();
|
||||||
|
l.info("Trying to bind");
|
||||||
|
r.rebind("Counter",rc);
|
||||||
|
l.info("Binded");
|
||||||
|
|
||||||
|
BufferedReader i = new BufferedReader(new InputStreamReader(System.in));
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
l.info("Commands:status,accesses,any other to quit");
|
||||||
|
String command = LaunchServer.cmd(i);
|
||||||
|
l.info(command);
|
||||||
|
if (command.equals("status")) {
|
||||||
|
l.info(rc.getlocalvalue() + "");
|
||||||
|
} else if (command.equals("accesses")) {
|
||||||
|
l.info(rc.getaccesses());
|
||||||
|
} else {
|
||||||
|
l.info("quitting");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static String cmd (BufferedReader i ){
|
||||||
|
try {
|
||||||
|
String input = i.readLine();
|
||||||
|
return input;
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
26
rmi_counter/LocalCounter.java
Normal file
26
rmi_counter/LocalCounter.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package rmi_counter;
|
||||||
|
|
||||||
|
import java.rmi.registry.LocateRegistry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Giovanni on 16/11/2014.
|
||||||
|
*/
|
||||||
|
public class LocalCounter {
|
||||||
|
|
||||||
|
public LocalCounter(int in){
|
||||||
|
value=in;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int increment(){
|
||||||
|
return (value++);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getlocalvalue(){
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
}
|
||||||
45
rmi_counter/RemoteCounter.java
Normal file
45
rmi_counter/RemoteCounter.java
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
package rmi_counter;
|
||||||
|
|
||||||
|
import java.rmi.RemoteException;
|
||||||
|
import java.rmi.server.UnicastRemoteObject;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.Vector;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Giovanni on 16/11/2014.
|
||||||
|
*/
|
||||||
|
public class RemoteCounter extends LocalCounter implements CounterInterface {
|
||||||
|
|
||||||
|
private static Logger l = Logger.getLogger("RemoteCounter");
|
||||||
|
|
||||||
|
public RemoteCounter( int in) throws RemoteException{
|
||||||
|
super(in);
|
||||||
|
UnicastRemoteObject.exportObject(this,5000);
|
||||||
|
accesses = new Vector<String>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized int getvalue(String from) throws RemoteException {
|
||||||
|
accesses.add("Access from " + from + " value " + getlocalvalue());
|
||||||
|
return getlocalvalue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public synchronized int sum(String from, int value) throws RemoteException {
|
||||||
|
accesses.add("Access from " + from + " value to add " + value);
|
||||||
|
for (int i = 0;i < value ;i++)
|
||||||
|
increment();
|
||||||
|
return getlocalvalue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getaccesses (){
|
||||||
|
String returned = "";
|
||||||
|
for (Enumeration<String> e = accesses.elements(); e.hasMoreElements() ;)
|
||||||
|
returned+="\n" + e.nextElement();
|
||||||
|
return returned;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector<String> accesses;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -15,8 +15,7 @@ public class HelloWorldImpl extends UnicastRemoteObject implements HelloWorldInt
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String stampa(String in) throws RemoteException {
|
public String stampa() throws RemoteException {
|
||||||
System.out.print(in);
|
return "HelloWorld";
|
||||||
return in;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,6 @@ import java.rmi.RemoteException;
|
|||||||
public interface HelloWorldInterface extends Remote {
|
public interface HelloWorldInterface extends Remote {
|
||||||
|
|
||||||
|
|
||||||
String stampa (String in) throws RemoteException;
|
String stampa () throws RemoteException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
39
rmi_hello_world/LaunchClient.java
Normal file
39
rmi_hello_world/LaunchClient.java
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
package rmi_hello_world;
|
||||||
|
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.rmi.Naming;
|
||||||
|
import java.rmi.NotBoundException;
|
||||||
|
import java.rmi.RemoteException;
|
||||||
|
import java.rmi.registry.LocateRegistry;
|
||||||
|
import java.rmi.registry.Registry;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Giovanni on 16/11/2014.
|
||||||
|
*/
|
||||||
|
public class LaunchClient {
|
||||||
|
|
||||||
|
private static final Logger l = Logger.getLogger("Client");
|
||||||
|
|
||||||
|
public static void main (String[] arg) {
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
l.info("Cercando l'oggetto remoto");
|
||||||
|
HelloWorldInterface o = (HelloWorldInterface) Naming.lookup("rmi://localhost/HW");
|
||||||
|
l.info("Found");
|
||||||
|
l.info(o.stampa());
|
||||||
|
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (NotBoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -10,19 +10,19 @@ import java.util.logging.Logger;
|
|||||||
/**
|
/**
|
||||||
* Created by Giovanni on 09/11/2014.
|
* Created by Giovanni on 09/11/2014.
|
||||||
*/
|
*/
|
||||||
public class Launch {
|
public class LaunchServer {
|
||||||
|
|
||||||
|
|
||||||
public static void main (String[] arg){
|
public static void main (String[] arg){
|
||||||
|
|
||||||
Logger l =Logger.getLogger("hellowordlogger");
|
Logger l =Logger.getLogger("hellowordlogger");
|
||||||
System.setSecurityManager(new RMISecurityManager());
|
System.setSecurityManager(new SecurityManager());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Registry registry = LocateRegistry.createRegistry(10000);
|
Registry registry = LocateRegistry.getRegistry();
|
||||||
HelloWorldImpl obj = new HelloWorldImpl();
|
HelloWorldImpl obj = new HelloWorldImpl();
|
||||||
l.info("Creato oggetto");
|
l.info("Creato oggetto");
|
||||||
registry.bind("HW",obj);
|
registry.rebind("HW", obj);
|
||||||
l.info("Oggetto registrato");
|
l.info("Oggetto registrato");
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user