Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
6 / 6 / 3
Регистрация: 22.09.2013
Сообщений: 166

Java.lang.ClassNotFoundException при получении данных на сервере

07.09.2017, 22:27. Показов 1520. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо отправлять некоторые данные с клиента на сервер.

Метод отправки:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    @Override
    public void pushBees(String name, int amount) {
        if(connection == null) {
            return;
        }
        try {
            ArrayList<IBehaviour> iBehaviours = BeeArray.getInstance().getBees(amount);
 
            if(iBehaviours != null) {
                serverWriter.flush();
                serverWriter.writeObject(name);
                serverWriter.writeObject(iBehaviours);
            }
 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
Вызывается просто при нажатии на кнопку.

На сервере идет следующая обработка:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Override
        public void run() {
            while(!this.isInterrupted()) {
                synchronized (Clients.getInstance().getClientsInputStream()) {
                    for(Map.Entry<String, ObjectInputStream> iter : Clients.getInstance().getClientsInputStream().entrySet()) {
                        try {
                            String name = (String) iter.getValue().readObject();
                            ArrayList<IBehaviour> iBehaviours = (ArrayList<IBehaviour>) iter.getValue().readObject();
 
                            System.out.println(name + " " + iBehaviours.toString());
                        } catch (IOException e) {
                            e.printStackTrace();
                        } catch (ClassNotFoundException e) {
                            e.printStackTrace();
                        }
                    }
                    try {
                        this.sleep(timeout);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
При получении данных с сервера имя выводится нормально, ArrayList не получает данные. Ошибка:
java.lang.ClassNotFoundException: com.bee.Worker
at java.net.URLClassLoader.findClass(URLCla ssLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoa der.java:424)
at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoa der.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at java.io.ObjectInputStream.resolveClass(O bjectInputStream.java:628)
at java.io.ObjectInputStream.readNonProxyDe sc(ObjectInputStream.java:1620)
at java.io.ObjectInputStream.readClassDesc( ObjectInputStream.java:1521)
at java.io.ObjectInputStream.readOrdinaryOb ject(ObjectInputStream.java:1781)
at java.io.ObjectInputStream.readObject0(Ob jectInputStream.java:1353)
at java.io.ObjectInputStream.readObject(Obj ectInputStream.java:373)
at java.util.ArrayList.readObject(ArrayList .java:791)
at sun.reflect.NativeMethodAccessorImpl.inv oke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.inv oke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.jav a:43)
at java.lang.reflect.Method.invoke(Method.j ava:498)
at java.io.ObjectStreamClass.invokeReadObje ct(ObjectStreamClass.java:1058)
at java.io.ObjectInputStream.readSerialData (ObjectInputStream.java:1909)
at java.io.ObjectInputStream.readOrdinaryOb ject(ObjectInputStream.java:1808)
at java.io.ObjectInputStream.readObject0(Ob jectInputStream.java:1353)
at java.io.ObjectInputStream.readObject(Obj ectInputStream.java:373)
at core.Server$BeeListener.run(Server.java: 126)

И на клиенте и на сервере есть аналогичные классы и интерфейсы, которые используются в ArrayList. Это IBehavior, Bee, Drone, Worker.

не понимаю почему в: ArrayList<IBehaviour> iBehaviours = (ArrayList<IBehaviour>) iter.getValue().readObject(); не записываются данные на сервер из ArrayList отправленного с клиента. Может кто-то помочь разобраться?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.09.2017, 22:27
Ответы с готовыми решениями:

Ошибка в classpath: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
Подскажите, пожалуйста, кто знает. Второй день бьюсь, не могу решить. Проблема: запускаю в локалке аппликацию stand-alone. Bat для...

Ошибка в RMI: nested exception is: java.lang.ClassNotFoundException: rmi.RemoteDateImpl_Stub
Пытаюсь создать простое RMI приложение , а точнее беру пример из книги сервер выглядить так когда его запускаю из JBuilder то...

Java.lang.ClassCastException: MyBaza.Diag cannot be cast to java.lang.Comparable
Подскажите как исправить... Exception in thread &quot;AWT-EventQueue-0&quot; java.lang.ClassCastException: MyBaza.Diag cannot be cast to...

2
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
08.09.2017, 05:20
Для использования в Object*Stream необходимо иметь шареные классы, т.е. бинарный вид класса должен быть тот же самый, той же сборки на обоих концах. Например выделяешь либу с классом, собираешь и добавляешь в оба проекта.

Вообще летные стримы - архаизм и из принято уже не использовать, читай доку , проблема в том, что при чтении через read стрим не позволяет удалить из памяти прочитанный объект и приложение пухнет, следует использовать readunshared
2
6 / 6 / 3
Регистрация: 22.09.2013
Сообщений: 166
09.09.2017, 05:30  [ТС]
собрал артефакт для нужных классов - заработало. За доку тоже спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.09.2017, 05:30
Помогаю со студенческими работами здесь

Tomcat HTTP Status 500 (java.lang.NoClassDefFoundError && java.lang.ClassNotFoundException) with MongoDB
Здравствуйте, пишу простенький сервер, который мог бы работать с MongoDB. Создал классы для работы с БД и с сервером. Но после того...

Java.lang.ClassNotFoundException
Сам класс MainActivity обьявлен то есть создан. Но почему-то вываливает ошибки ,ЛОГ 08-25 04:03:34.080 2276-2276/? I/art: Not...

RMI : java.lang.ClassNotFoundException: IMath
Добрый день. Просьба помочь. Начал разбираться с RMI и набрал такой пример: public class Server { public static void main(String...

Java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Здравствуйте, Помогите пожалуйста решить проблему Программа не может установить соединение с базой данных: Вот фрагмент кода: ...

Spring MVC + Hibernate, java.lang.ClassNotFoundException
Здравствуйте. Делаю сампл по вышеукаазаных технологиях, получаю следующие ошибки: org.apache.jasper.JasperException:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru