Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 18
1

SmsLib for Java: NoClassDefFoundError

06.07.2014, 17:19. Показов 2572. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Возникла необходимость реализации отправки смс с компьютера через подключенный к нему через USB мобильный телефон/USB-модем. Нагуглил универсальную библиотеку: SMSLib.
Нашел примеры использования.
Пишу (взято с однотипных примеров (типа: http://javatalks.ru/topics/26331)):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void checkGateway() throws Exception {
             OutboundNotification outboundNotification = new OutboundNotification();
             SerialModemGateway gateway = new SerialModemGateway("modem1", "COM26", 115200, "Samsung", "");
             gateway.setInbound(true);
             gateway.setOutbound(true);
             gateway.setSimPin("");
             gateway.setSmscNumber("+7*мой номер*");
             
             //в следующей строке выдаст исключение
             Service.getInstance().setOutboundMessageNotification(outboundNotification);
             //любое обращение к  Service.getInstance() -выдает исключение
             Service.getInstance().addGateway(gateway);
             Service.getInstance().startService();
             System.out.println("Готово");
             
             //дальше еще код, но до этого не доходит
         }
Исключение:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/log4j/Priority
    at org.smslib.Service.listSystemInformation(Service.java:113)
    at org.smslib.Service.initializeService(Service.java:103)
    at org.smslib.Service.<init>(Service.java:95)
    at org.smslib.Service.<clinit>(Service.java:90)
    at SERVER.doIt(SERVER.java:281)
    at SERVER.initialize(SERVER.java:224)
    at SERVER.<init>(SERVER.java:98)
    at SERVER$1.run(SERVER.java:85)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Priority
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 22 more
Подскажите пожалуйста, в чем может быть проблема?

Добавлено через 4 минуты
P.S. Подключаю мобильный телефон Samsung Wave 525.

Добавлено через 13 минут
Скачал log4j ( http://www.apache.org/dyn/clos... 1.2.17.zip ). Подключил .jar-файл к проекту, что дальше делать-не знаю. Прошу помощи.

Добавлено через 41 минуту
Теперь такое исключение (возникает в этой:
Java
1
Service.getInstance().startService();
строке). Варнинги ранее.
Bash
1
2
3
4
5
6
7
8
9
10
11
log4j:WARN No appenders could be found for logger (smslib).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See [url]http://logging.apache.org/log4j/1.2/faq.html#noconfig[/url] for more info.
Exception in thread "Thread-4" java.lang.ExceptionInInitializerError
    at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java:69)
    at org.smslib.modem.AModemDriver.connect(AModemDriver.java:114)
    at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:189)
    at org.smslib.Service$1Starter.run(Service.java:277)
Caused by: java.lang.RuntimeException: CommPortIdentifier class not found
    at org.smslib.helper.CommPortIdentifier.<clinit>(CommPortIdentifier.java:76)
    ... 4 more
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2014, 17:19
Ответы с готовыми решениями:

Java.lang.NoClassDefFoundError
Всем привет! Помогите с ошибкой. Вот вся программа: import org.bytedeco.javacv.FrameGrabber;...

Exception in thread "main" java.lang.NoClassDefFoundError:c:HelloWorldApp/java
Exception in thread 'main' java.lang.NoClassDefFoundError:c:HelloWorldApp/java вот это выходит...

Ошибка java.lang.NoClassDefFoundError
Помогите, пожалуйста. Ошибка выскакивает в тупом HelloWorld-е. Я уже попробовала кучу вариантов...

Ошибка java.lang.NoClassDefFoundError
Имеется скомпилированыи класс. Но когда набираю комманду java classFileName програма не зупискается...

9
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
06.07.2014, 18:21 2
...для начала проверить работоспособность данного телефона в режиме модема (и наличие виртуального COM порта) через стандартный гипертерминал. Под какой ОС работаете?
0
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 18
06.07.2014, 18:40  [ТС] 3
В режиме модема телефон работает. ОС Windows7. COM-порт определял через: панель управления -> телефон и модем. IDE: Eclipse Keepler.
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
06.07.2014, 18:46 4
Да? Приведите логи на "AT?" и "AT+CGMI".
0
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 18
06.07.2014, 18:52  [ТС] 5
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
ATQ0V1E0 - OK
AT+GMM - GT-S5250
AT+FCLASS=? - КОМАНДА НЕ ПОДДЕРЖИВАЕТСЯ
AT#CLS=? - КОМАНДА НЕ ПОДДЕРЖИВАЕТСЯ
AT+GCI? - КОМАНДА НЕ ПОДДЕРЖИВАЕТСЯ
AT+GCI=? - КОМАНДА НЕ ПОДДЕРЖИВАЕТСЯ
ATI1 - BCM2133x_SW_Release_SI2.2.5_V23
ATI2 - OK
ATI3 - OK
ATI4 - OK
ATI5 - OK
ATI6 - OK
ATI7 - OK
-это оно?)

Режим модема-я имел ввиду: подключение компьютера к интернету через телефон (при подключении по USB - общий доступ к интернету).
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
06.07.2014, 19:14 6
...да, это оно.

Оки, возвращаясь к сабжу: у вас проблемы с путями окружения, не видит класс. Возможно установленное ПО самвысунга повлияло на переменные окружения JDK.

http://docs.oracle.com/javase/... paths.html
0
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 18
06.07.2014, 21:52  [ТС] 7
Мм... Как я понял-нужно задать системную переменную для инициализации log4j. Спасибо, попробую сейчас.

Добавлено через 27 минут
Такс, конкретная проблема с log4j решилась так:
Java
1
org.apache.log4j.BasicConfigurator.configure();
Заданием конфигурации log4j.

Добавлено через 6 минут
Теперь создается поток и постоянно рисует:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
0 [AWT-EventQueue-0] INFO smslib  - SMSLib: A Java API library for sending and receiving SMS via a GSM modem or other supported gateways.
This software is distributed under the terms of the Apache v2.0 License.
Web Site: [url]http://smslib.org[/url]
1 [AWT-EventQueue-0] INFO smslib  - Version: 3.5.4
1 [AWT-EventQueue-0] INFO smslib  - JRE Version: 1.7.0_51
1 [AWT-EventQueue-0] INFO smslib  - JRE Impl Version: 24.51-b03
1 [AWT-EventQueue-0] INFO smslib  - O/S: Windows 7 / amd64 / 6.1
4 [AWT-EventQueue-0] INFO smslib  - Queue directory not defined. Queued messages will not be saved to filesystem.
5 [AWT-EventQueue-0] DEBUG smslib  - Initialized.
5 [NotifyQueueManager] DEBUG smslib  - Running...
6 [NotifyQueueManager] DEBUG smslib  - NotifyQueueManager running...
6 [AWT-EventQueue-0] DEBUG smslib  - Initialized.
6 [DelayQueueManager] DEBUG smslib  - Running...
6 [DelayQueueManager] DEBUG smslib  - DelayQueueManager running...
7 [AWT-EventQueue-0] DEBUG smslib  - Initialized.
7 [WatchDog] DEBUG smslib  - Running...
8 [Thread-4] INFO smslib  - GTW: modem1: Starting gateway, using Generic AT Handler.
8 [Thread-4] INFO smslib  - GTW: modem1: Opening: COM26 @115200
Exception in thread "Thread-4" java.lang.ExceptionInInitializerError
    at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java:69)
    at org.smslib.modem.AModemDriver.connect(AModemDriver.java:114)
    at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:189)
    at org.smslib.Service$1Starter.run(Service.java:277)
Caused by: java.lang.RuntimeException: CommPortIdentifier class not found
    at org.smslib.helper.CommPortIdentifier.<clinit>(CommPortIdentifier.java:76)
    ... 4 more
Добавлено через 1 час 35 минут
Оказывается, не хватает comm.jar. Но вот проблема: comm.jar есть для linux и для win32. У меня win64.
Как сделать кросплатформенно?) (win64,32, linux -обязательно нужно).

Добавлено через 9 минут
Или... Может кто подскажет другие библиотеки, менее геморройные?)
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
06.07.2014, 21:54 8
...эээ, собственно, от битности работа с COM портом нативно не зависит. А вот от ОС зависит, придется вам под Линуксы юзать соответствующий костыль, под Винды свой.
0
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 18
06.07.2014, 23:33  [ТС] 9
comm для win32 не работает(.
Bash
1
2
3
4
5
org.smslib.GatewayException: Comm library exception: java.lang.RuntimeException: javax.comm.NoSuchPortException
    at org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java:102)
    at org.smslib.modem.AModemDriver.connect(AModemDriver.java:114)
    at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java:189)
    at org.smslib.Service$1Starter.run(Service.java:277)
Ладно. Буду разбираться, спасибо!

Добавлено через 34 минуты
Блин, ппц какой-то...

Добавлено через 48 минут
Не продвинулся.( Может кто описать примерный порядок действий при подключении smslib с 0? Или сбросить архив с .jar -файлами рабочими и описать их подключение?
0
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 18
09.08.2014, 01:01  [ТС] 10
Так и не заработал SMSLib.

Пришлось искать другое решение.

http://blog.lw-studio.ru/2012/... r-na-java/ -реализация отправки смс напрямую, AT-командами.
Для работы с COM используется jssc.
Всем спасибо...
1
09.08.2014, 01:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2014, 01:01
Помогаю со студенческими работами здесь

Что мне сделать с java.lang.NoClassDefFoundError !
Не межете подсказать в чём причина этой ошибки и поче му она поевляется, если поставил переменные...

NoClassDefFoundError - при запуске на выполнение file.java
Об этом уже писали. Но ответа пока нет. У меня проблема при запуске на выполнение file.java Не...

Ошибка 'Exception in thread 'main' java.lang.NoClassDefFoundError: D:JProgaSymbolTest'
Почему при выполнении файла SymbolTest.class выдается сообщение 'Exception in thread 'main'...

Ошибка Exception in thread 'main' java.lang.NoClassDefFoundError: CreateCoffees
Привет. Есть такая проблема... Уставлен Oracle как сервер на одной машине и как клиент на другой....


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru