2016-12-05 4 views
0

У меня возникла проблема с попыткой заставить RMI работать. У меня работает реестр, когда я пытаюсь запустить сервер, окно появляется всплывающее окно менее чем за секунду, а затем закрывается. Почему это происходит.RMI Объект уже экспортирован

пакет сервера --- MyFileServer.java

package Server; 

import java.io.File; 
import java.io.FileInputStream; 
import java.rmi.AlreadyBoundException; 
import java.rmi.RemoteException; 
import java.rmi.registry.LocateRegistry; 
import java.rmi.registry.Registry; 
import java.rmi.server.UnicastRemoteObject; 

/** 
* Created by alexi on 05/12/2016. 
*/ 
public class MyFileServer extends UnicastRemoteObject implements ServerInit { 



    protected MyFileServer() throws RemoteException { 
     super(); 
    } 

    @Override 
    public void importFiles(Notify n, String name) throws RemoteException { 
     String videoPath = "src" + File.separator + "Videos" + File.separator + name; 
     try { 

      File video = new File(videoPath); 
      FileInputStream in=new FileInputStream(video); 
      byte [] mydata=new byte[(int)video.length()+1]; 
      int mylen=in.read(mydata); 
      while(mylen>0){ 
       n.sendData(video.getName(), mydata, mylen); 
       mylen=in.read(mydata); 
      } 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args){ 
     try{ 
      ServerInit server = new MyFileServer(); 
      ServerInit stub = (ServerInit) UnicastRemoteObject.exportObject(server, 0); 

      Registry registry = LocateRegistry.getRegistry(); 
      registry.bind("videoServer", stub); 

     }catch (RemoteException e){ 
      e.printStackTrace(); 
     } catch (AlreadyBoundException e) { 
      e.printStackTrace(); 
     } 
    } 


} 

Запуск его следующим образом.

start java -classpath E:\Documents\Development\Projects\OOP3_Project1\bin\Server/ -Djava.rmi.codebase=file:/E:\Documents\Development\Projects\OOP3_Project1\bin\Server/ MyFileServer  

Если кто-то может помочь было бы здорово

+0

Не изменяйте свой вопрос при разработке решений. – EJP

+0

@EJP, о чем вы говорите, я только изменил название. Содержание все равно такое же. –

+0

Вы изменили заголовок на что-то совершенно неопределенное, что оставило вопрос абсолютно бессмысленным, так как нет другого намека на вопрос о том, какова была фактическая проблема или сообщение об ошибке. – EJP

ответ

0

Снимите UnicastRemoteObject.exportObject() линию. Вам нужно только это, если ваш удаленный объект не расширяет UnicastRemoteObject. Вы можете привязать server вместо заглушки.

+0

Привет, спасибо. Остается сразу после выполнения. –

+0

Но с другим исключением. – EJP

 Смежные вопросы

  • Нет связанных вопросов^_^