0% encontró este documento útil (0 votos)
132 vistas

Codigo RMI

Este documento describe cómo crear una aplicación de tres capas utilizando RMI (Remote Method Invocation) en Java. Explica cómo crear interfaces remotas, un servidor que implementa las interfaces remotas y un cliente que se conecta al servidor para invocar métodos remotos. Muestra cómo el servidor expone métodos para sumar números y buscar personas en una base de datos, y cómo el cliente llama a estos métodos remotos para realizar cálculos y consultas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
132 vistas

Codigo RMI

Este documento describe cómo crear una aplicación de tres capas utilizando RMI (Remote Method Invocation) en Java. Explica cómo crear interfaces remotas, un servidor que implementa las interfaces remotas y un cliente que se conecta al servidor para invocar métodos remotos. Muestra cómo el servidor expone métodos para sumar números y buscar personas en una base de datos, y cómo el cliente llama a estos métodos remotos para realizar cálculos y consultas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 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