|
|
|
Forum Member
      
участник
Last Login: 09.06.2008 12:39
Сообщ.: 30,
Visits: 141
|
|
Использую в своем проекте проект который использует RMI, с RMI не сильно знаком , вылетает такой експешион
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.io.InvalidClassException: gateway.ShortMessage; local class incompatible: stream classdesc serialVersionUID = -9125313922810789427, local class serialVersionUID = -4495976296593919990
Что, и как исправиь?
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298,
Visits: 12 501
|
|
Синхронизировать jar-файл в котором расположен класс gateway.ShortMessage на сервере и на клиенте. У тебя на сервере другая версия класса чем на клиенте при десерализации происходит ошибка.
Если это происходит в режиме отладки (такое случается например при отладке в Eclipse, потому как у них свой компилятор и по другому вычисляется serialVersionUID по сравнению с компилятором Sun), то можно добавить в класс новый атрибут "private static final long serialVersionUID = " и присвоить ему любое сгенерированное число типа long. После этого пересоздать библиотеку и разместить на сервер по новой.
Если в классе уже есть атрибут serialVersionUID, то он не будет автоматически пересоздаваться компилятором и ошибка должна исчезнуть даже если классы были сгенерированы разными компиляторами, правда в этом случае нужно не забывать изменять serialVersionUID если были внесены изменения в класс.
Удачи,
Владимир
|
|
|
|
|
Forum Member
      
участник
Last Login: 09.06.2008 12:39
Сообщ.: 30,
Visits: 141
|
|
| помогло, теперь зато другой эксепшион java.rmi.ConnectException: Connection refused to host: XXX.XXX.1.1; nested exception is: java.net.ConnectException: Connection refused: connect под иксами циферки конечно...
|
|
|
|
|
Supreme Being
      
участник
Last Login: 23.05.2007 20:20
Сообщ.: 662,
Visits: 5 795
|
|
Под иксами, видимо, 192.168 =)
Здесь, боюсь, конкретно никто не сможет помочь. Как ты и сам можешь видеть, проблема в том, что сервер отклоняет TCP соединения.
Ты можешь это проверить даже без java. Выполни в командой строке
telnet XXX.XXX.1.1 <port>
где <port> -- это TCP порт, куда коннектится твой клиент.
telnet пытается создать TCP соединение, то есть то же самое, что и твой клиент.
|
|
|
|