Java File Upload e Download RMI

Olá, estou precisando implementar um servidor de compartilhamento de arquivos em RMI. O servidor possui uma pasta que compartilha arquivos e o cliente terá a opção de fazer download quanto compartihar arquivos. o Download ja consegui implementar, nao estou conseguindo fazer o upload.

Alguem teria alguma sugestao de como posso fazer isso utilizando RMI?

Acho que voce precisa de um “client callback”.
http://www2.cs.uic.edu/~i441/RMICallback/

Assim como o servidor envia um objeto remoto (que estende UnicastRemoteObject ), é possível fazer isso no outro sentido também.
Se o cliente envia um objeto remoto, ele pode ser usado pelo servidor para executar o método no cliente.

Não sei se era isso que você queria, nem se fui claro o bastante.

Nao sei se seria isso, é necessaio somente enviar um arquivo em especifico para o servidor, nao sei como poderia fazer isso

Basta fazer um metodo que recebe um array de bytes.
Aí o cliente chama o metodo, enviando os bytes, o sevidor recebe os bytes e salva o arquivo.

Acho que não vi qual é o problema ainda… parece exatamente igual ao download, so que ao contrário.

Nao entendi muito bem, meu download esta desta maneira:

public byte[] download(String arquivo) throws RemoteException {
        try {
            File file = new File(this.sharedDir + "/" + arquivo);
            byte buffer[] = new byte[(int) file.length()];
            BufferedInputStream input = new BufferedInputStream(new FileInputStream(file.getAbsolutePath()));
            input.read(buffer, 0, buffer.length);
            input.close();
            return (buffer);
        } catch (Exception e) {
            e.printStackTrace();
            return (null);
        }
    }

Você realmente acha que um servidor de compartilhamento RMI é um assunto de “Java Básico”?
Por favor, leia com atenção a descrição dos fóruns antes de postar.

Movido para “Java avançado”.

Pois é, eu tinha pensado nisso:

public boolean upload(String arquivo, byte[] bytes) throws RemoteException;

Aki funciona normal, mas não tenho como testar com duas máquinas (só tenho uma em casa).
Até onde eu sei byte[] é Serializable…

Alguem poderia me dizer o que seria esse shareDir

File file = new File(this.sharedDir + “/” + arquivo);

queria implantar essa função de download de um arquivo que foi salvo em um diretório do servidor…