[Resolvido]Renomear arquivo com RMI

Boa noite,

Eu tenho uma aplicação que lê um arquivo, envia uma String de dados para um BD e renomeia essa arquivos com RMI. Eu criei 3 projetos diferentes, um para cada funcionalidade e agora criei um que abrange todas funcionalidade.

Eu já consegui integrar a leitura do arquivo e envio para o banco, mas quando tento renomear não dá certo! Já tentei integrar tudo no mesmo método, com métodos diferente e nada!
Olha, eu já tentei de toda maneira que consegui pensar, mas não dá certo. Não sei se é porque o arquivo acabou ou ainda está sendo usado, não sei mesmo.

[code]import java.io.File;
import java.rmi.AlreadyBoundException;
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.SQLException;
import java.sql.Statement;

/*

  • To change this template, choose Tools | Templates

  • and open the template in the editor.
    /
    /
    *

  • @author Munique
    */
    public class ServidorCompletoRMI implements InterfaceCompleta {

    public String dbUrl = “jdbc:postgresql://localhost:5432/BDEstacao”;
    public String dbDriver = “org.postgresql.Driver”;
    public String dbUser = “postgres”;
    public String dbSenha = “postgre”;

    /**
    private static String dir = “C:” + File.separator + “Users” + File.separator + “Munique” + File.separator + “Documents”
    + File.separator + “aleatorio” + File.separator + “teste.txt”;
    private static String dir2 = “C:” + File.separator + “Users” + File.separator + “Munique” + File.separator + “Documents”
    + File.separator + “aleatorio” + File.separator + “testelido.txt”;
    File renomeado = new File(dir2);
    */
    File arquivo = new File(“C:” + File.separator + “Users” + File.separator + “Munique” + File.separator + “Documents”
    + File.separator + “aleatorio” + File.separator + “teste.txt”);
    File renomeado = new File(“C:” + File.separator + “Users” + File.separator + “Munique” + File.separator + “Documents”
    + File.separator + “aleatorio” + File.separator + “testelido.txt”);

    public void inicia() {
    try {

         InterfaceCompleta stub = (InterfaceCompleta) UnicastRemoteObject.exportObject(this, 0);
    
         Registry registry = LocateRegistry.createRegistry(3637);
    
         registry.bind("Servidor", stub);
    
         System.out.println("Servidor iniciado...");
     } catch (RemoteException ex) {
         System.out.println(ex.getMessage());
     } catch (AlreadyBoundException ex) {
         System.out.println(ex.getMessage());
     } catch (Throwable t) {
         t.printStackTrace();
     }
    

    }

    public String enviaDados(String mensagem) throws RemoteException{
    if (arquivo.exists()) {
    boolean retorno = false;
    Connection con = null;
    String sql;

         try {
             try {
                 Class.forName(dbDriver);
             } catch (ClassNotFoundException ex) {
                 ex.printStackTrace();
             }
             con = DriverManager.getConnection(dbUrl, dbUser, dbSenha);
             con.setAutoCommit(false);
             Statement stat = con.createStatement();
             sql = "INSERT INTO estacao(codigoestacao, descestacao, horario, pressao, temperatura) VALUES (NEXTVAL('seq_estacao')," + mensagem + ");";
             //System.out.println(sql);
             stat.executeUpdate(sql);
             con.commit();
             stat.close();
             con.close();
             retorno = true;
            
         } catch (SQLException e) {
             try {
                 con.rollback();
                 con.close();
             } catch (Exception ex) {
                 ex.printStackTrace();
             }
         }
     } else {
         return null;
     }
     return null;
    

    }

    public String renomearArquivo() throws RemoteException{
    if (arquivo.exists()){
    arquivo.renameTo(renomeado);
    }
    return renomeado.getName();
    }

    public static void main(String[] args) throws RemoteException {
    new ServidorCompletoRMI().inicia();
    }
    }[/code]

[code]import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.rmi.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

/*

  • To change this template, choose Tools | Templates

  • and open the template in the editor.
    /
    /
    *

  • @author Munique
    */
    public class ClienteCompletoRMI {

    public ClienteCompletoRMI() throws RemoteException, NotBoundException {
    iniciar();
    }

    public void iniciar() {
    String opcao;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    try {
    Registry registry = LocateRegistry.getRegistry(“localhost”, 3637);
    InterfaceCompleta intf = (InterfaceCompleta) registry.lookup(“Servidor”);
    opcao = br.readLine();
    while (!opcao.equals("")) {
    if (opcao.equalsIgnoreCase(“lista”)) {
    lista(intf);
    renomear(intf);
    }
    opcao = br.readLine();
    }
    } catch (Exception ex) {
    ex.printStackTrace();
    }
    }

    private void lista(InterfaceCompleta intf) throws RemoteException {

     String linha = null;
     File file = new File("C:\\Users\\Munique\\Documents\\aleatorio\\teste.txt");
     //File renomeado = new File("C:\\Users\\Munique\\Documents\\aleatorio\\testelido.txt");
     try {
         FileReader reader = new FileReader(file);
         BufferedReader buffer = new BufferedReader(reader);
    
         while (buffer.ready()) {
             linha = buffer.readLine();
         }
     } catch (IOException ex) {
         ex.printStackTrace();
     }
    
     String listaArquivo = intf.enviaDados(linha);
    

    }

    private void renomear(InterfaceCompleta intf) throws RemoteException {
    String nome = intf.renomearArquivo();
    if (nome != null) {
    System.out.println(nome);
    } else {
    System.out.println(nome);
    }
    }

    public static void main(String[] args) throws RemoteException, NotBoundException {
    new ClienteCompletoRMI();
    }
    }[/code]

public interface InterfaceCompleta extends Remote{ public String enviaDados(String mensagem) throws RemoteException; public String renomearArquivo() throws RemoteException; }

Opa! Bati a cabeça mais um pouco e consegui achar uma solução.