Está en la página 1de 7

CLASE RMI

Crear un proyecto RMI y luego crear una clase remota

Crea archivo java class RMI – crear un archivo java interface


import java.rmi.Remote;
import java.rmi.RemoteException;
public interface RMI extends Remote {
public int sumar(int n1,int n2) throws RemoteException;
}

Crear proyecto Server – y agregar librería a RMI anterior


Crea archivo java class ServerRMI
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
public class ServerRMI extends UnicastRemoteObject implements RMI {
public ServerRMI() throws RemoteException{
super();
}
@Override
public int sumar(int n1, int n2) throws RemoteException {
return n1+n2;
}
public static void main(String[] args) {
try{
Registry registro=LocateRegistry.createRegistry(7777);
registro.rebind("RemotoRMI", new ServerRMI()); //mantiene servidor en escucha
System.out.println("Servidor Activo");
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
}
}
}

Crear paquete Cliente – agregar librería al RMI

Crea archivo java class Cliente


import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

1
public class Cliente {
public static void main(String[] args) {
Cliente client=new Cliente();
client.connectServer();
}
private void connectServer(){
try{
Registry
registro=LocateRegistry.getRegistry("127.0.0.1",7777);
RMI interfaz= (RMI) registro.lookup("RemotoRMI");
int suma;
suma=interfaz.sumar(8, 5);
System.out.println("La suma es: " + suma);
}
catch(Exception e){
System.out.println(e);
}
}
}

Codigo boton Calcular


try {
int a,b;
Registry registro = LocateRegistry.getRegistry("127.0.0.1",7777);
RMI interfaz= (RMI) registro.lookup("RemotoRMI");
a=Integer.parseInt(txtn1.getText());
b=Integer.parseInt(txtn2.getText());
String r="";
r=String.valueOf(interfaz.sumar(a, b));
txtr.setText(r);
} catch (Exception e) {
Logger.getLogger(frmcliente.class.getName()).log(Level.SEVERE, null, e);
}

2
Crear proyecto RMIBD – crear una clase java interface

Crear clase RMIBD


public interface RMIBD extends Remote{
public ArrayList<Persona> buscar_persona(String codigo) throws RemoteException;
}

Crear clase persona


import java.io.Serializable;
public class Persona implements Serializable{
private String codigo;
private String appaterno;
private String apmaterno;
private String nombres;
public Persona(String codigo, String appaterno, String apmaterno, String nombres) {
this.codigo = codigo;
this.appaterno = appaterno;
this.apmaterno = apmaterno;
this.nombres = nombres;
}
public String getApmaterno() {
return apmaterno;
}
public void setApmaterno(String apmaterno) {
this.apmaterno = apmaterno;
}

public String getAppaterno() {


return appaterno;
}
public void setAppaterno(String appaterno) {
this.appaterno = appaterno;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {

3
this.codigo = codigo;
}
public String getNombres() {
return nombres;
}
public void setNombres(String nombres) {
this.nombres = nombres;
}
}

Crear proyecto SERVERBD


Crear clase SERVERRMIBD
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

class ServerRMIBD extends UnicastRemoteObject implements RMIBD {


public ServerRMIBD() throws RemoteException{
super();
}
@Override
public ArrayList<Persona> buscar_persona(String codigo) throws RemoteException {
String cod,app,apm,nom;
ArrayList<Persona> lisempleado = new ArrayList<>();
try {
//TODO write your implementation code here:
Class.forName("com.mysql.jdbc.Driver");//permite la carga del driver
Connection cn=
DriverManager.getConnection("jdbc:mysql://localhost:3306/bdejemplo","root","");
String sentencia = "select * from persona where dni='" + codigo + "'";
Statement stm = (Statement) cn.createStatement();
ResultSet rs = stm.executeQuery(sentencia);
while (rs.next()){
cod=rs.getString(1);

4
app=rs.getString(2);
apm=rs.getString(3);
nom=rs.getString(4);
Persona oempleado= new Persona(cod,app,apm,nom);
lisempleado.add(oempleado);
}
cn.close();
} catch (Exception e) {
System.out.println(e);
}
return lisempleado;
}
public static void main(String[] args) {
// TODO code application logic here
try{
Registry registro=LocateRegistry.createRegistry(1099);
registro.rebind("rmi://localhost:1099/RMIBD", new ServerRMIBD()); //mantiene
servidor en escucha
System.out.println("Servidor Activo");
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
}
}
}

5
Código botón buscar

try{
Registry registro=LocateRegistry.getRegistry("127.0.0.1",1099);
RMIBD interfaz= (RMIBD) registro.lookup("rmi://localhost:1099/RMIBD");
String cod;
cod=txtcodigo.getText();

if (interfaz.buscar_persona(cod).isEmpty())
{
JOptionPane.showMessageDialog(null, "No Encontrado");
}
else
{
txtappaterno.setText(interfaz.buscar_persona(cod).get(0).getAppaterno());
txtapmaterno.setText(interfaz.buscar_persona(cod).get(0).getApmaterno());
}
}
catch(RemoteException | NotBoundException e){
JOptionPane.showMessageDialog(null, e);
}

6
7

También podría gustarte