Вопрос по java, rmi, imageicon – Java RMI передачи объектов ImageIcon

0

Я делаюrmi client server based program что предполагаетсяpass Image object through remote object interfaces. The Client receives an Image from the Server.

Ниже мой код ....

At Client

       public class ImageReceiver
       {
                  public static ImageIcon imageicon;

                  public static void main(String Data[])
                  {

                         imageicon = new ImageIcon(url);
                         imageicon=remoteObject.getImageFromServer();
                  }

        }
        // The Details regarding the binding of remote objects are excluded since they are worling fine...

sendImage - реализованный метод взаимодействия

        public ImageIcon getImageFromServer() throws RemoteException;

At Server

           public ImageIcon getImageFromServer()
           {
                  ImageIcon ic = new ImageIcon("local url specified");
                  return ic;
           }

         // Much of the Exceptions and other binding details are excluded for simpicity.....

Теперь проблема в том, что я получаю сообщение об ошибке

          java.rmi.UnmarshalException: error unmarshalling return
          nested exception is: java.io.EOFException               

Теперь, на самом деле, я понятия не имею, как это произошло ... У меня есть два основных сомнения:

Is it possible to send ImageIcon objects through rmi...?? If yes, What could be probably the mistake here. If not, does there exist any simple way to pass Image based objects as parameter through rmi...??

I've also heard somewhere that javax.swing.ImageIcon is serial....but it's not happening in my case

Ну, а как насчет того, чтобы использовать это тогда? Верните локальный URL, который вы используете для создания ImageIcon на стороне сервера, а не ImageIcon. Теперь вы используете эту строку для создания ImageIcon на стороне клиента (вместо его передачи). Должно работать, если URL также может быть доступен клиенту. joergl
Простой эксперимент: попробуйте заменитьImageIcon с чем-то еще, скажемString, Вы все еще получаете то же исключение? biziclop
хорошо .... да ... я запускаю его на localhost ........ Arjun K P
я попробовал это со строкой .. это работало ... но проблема возникла, когда я попробовал ImageIcon ...... Arjun K P
Как вы выполняете клиент и сервер? ImageIcon реализует Serializable, поэтому он может быть отправлен по сети, но в вашем случае, похоже, проблема с десериализацией. Из документации ImageIcon: «Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, использующими одну и ту же версию Swing. & Quot; Ваш клиент и сервер используют одну и ту же версию Swing? joergl

Ваш Ответ

1   ответ
2

через RMI ....

После долгой проверки .... я обнаружил, что указанный URL неверен .....

бывает ... компилятор в этом часто показывает исключение Unmarshall именно так, как вы показали .......

попробуйте проверить ваш локальный URL .....

ну ... даже я не знаю подробностей об этом .... только понял ... лолз ..
Вы поняли это правильно ... У меня была небольшая спецификация URL-адреса .... но я все еще не понимаю, почему это показало исключение Unmarshal, поскольку оно не имеет ничего общего с сериализацией .... я верю ... Arjun K P

Похожие вопросы