Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586

Exception in thread "main" java.lang.NullPointerException at JMS.JMSClient.main(JMSClient.java:15)

05.08.2015, 19:13. Показов 1724. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, ребят тут такое дело....уже сума схожу. Изучаю jms, хочу добиться соединения к ConnectionFactory.
Снизу приведена реализация, которая при запуске пишет ошибку:

"Exception in thread "main" java.lang.NullPointerException
at JMS.JMSClient.main(JMSClient.java:15)"

У меня гласфиш сервер, на нем я создал требуемые ресурсы зайдя на административную веб страницу.
На сервере по дефолту уже есть ресурс "jms/__defaultConnectionFactory" для ConnectionFactory
вот картинка
http://vk.com/id280301691?z=ph... 1_00%2Frev

А для очереди я сам создал ресурс "jms/Example1Queue" для Queue
вот картинка
http://vk.com/id280301691?z=ph... 1_00%2Frev

Всё вроде логично, но что он ругается не знаю, запарился уже

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package JMS;
import javax.jms.*;
import javax.annotation.Resource;
import javax.naming.NamingException;
 
public class JMSClient {
          @Resource(mappedName = "jms/__defaultConnectionFactory")
          private static ConnectionFactory connectionFactory;
          @Resource(mappedName = "jms/Example1Queue")
         private static Queue queue;
 
    public static void main(String[] args) throws JMSException, NamingException {
 
 
        Connection connection = connectionFactory.createConnection();
 
        Destination dest = (Destination) queue;
 
        System.out.println(connection);
 
    }
}

Копировал с инета вточ вточ этот код, тоже не запускается
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  import javax.jms.ConnectionFactory;
  import javax.jms.Destination;
  import javax.jms.Queue;
  import javax.jms.Topic;
  import javax.jms.Connection;
  import javax.jms.Session;
  import javax.jms.MessageProducer;
  import javax.jms.TextMessage;
  import javax.jms.JMSException;
  import javax.annotation.Resource;
  import java.io.InputStreamReader;
  import java.io.IOException;
  public class JMSClient {
      @Resource(mappedName = "jms/Example1ConnectionFactory")
      private static ConnectionFactory connectionFactory;
      @Resource(mappedName = "jms/Example1Queue")
      private static Queue queue;
 
      public static void main(String[] args) {
          Connection connection = null;
 
         Destination dest = (Destination) queue;
 
          try {
              connection = connectionFactory.createConnection();  Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);              MessageProducer producer = session.createProducer(dest);
             TextMessage message = session.createTextMessage();26  InputStreamReader inputStreamReader = new InputStreamReader(System.in);
              char c = 'n';
              int i = 0;
             while (!((c == 'q') || (c == 'Q'))) {
                  try {
                     c = (char) inputStreamReader.read();
                      message.setText("This is message " + (i + 1));
                     System.out.println("Sending message: " + message.getText());
                     producer.send(message);    
                     i++;
                  } catch (IOException e) {
                      System.err.println("I/O exception: " + e.toString());
                  }
              }
          } catch (JMSException e) {
              System.err.println("Exception occurred: " + e.toString());
          } finally {
              if (connection != null) {
                  try {
                      connection.close();
                  } catch (JMSException e) {
                  }
              }
          }
      }
  }
Для справки, Я работаю в идее!! Спасибо большое кто постарается помочь!!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2015, 19:13
Ответы с готовыми решениями:

Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
Приветствую форумчане! У меня возникла проблема, когда я запускаю в командной строке jar файл собранный в Maven в IteilliJ IDEA: ...

ошибка Exception in thread "main" java.lang.NoClassDefFoundError
Привет всем. Пишу hello world на Java с использование Spring. Значит что я сделал. 1) На Eclipse EE Indigo создал новый Java Project. ...

Запуск RestFULLWebService. Ошибка "Exception in thread "main" java.lang.NoClassDefFoundError: javax/ws/rs/cor"
Всем привет. Подскажите пожалуйста, как бороться с этой ошибкой. Создал обычный файлик RestFULL веб сервис , подложил под tomcat. При...

8
40 / 40 / 20
Регистрация: 14.05.2015
Сообщений: 116
05.08.2015, 20:22
Левиафам,
Цитата Сообщение от Левиафам Посмотреть сообщение
@Resource(mappedName = "jms/Example1ConnectionFactory")
он же через JNDI его ищет? Может так попробовать:
Java
1
@Resource(lookup = "jndiName")
Добавлено через 3 минуты
Левиафам, где jndiName- имя фабрики.
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
05.08.2015, 20:52
Цитата Сообщение от Левиафам Посмотреть сообщение
Я работаю в идее
а это имеет значение? хороший выбор

не имею представления ни о ЖМС ни о коннекшнФектори, но прекрасно знаю, что нуллпоинтер это когда обращаются к неинициализированному объекту. Иду в указанную строку ((JMSClient.java:15) и что же я вижу? да-да, обращение к неинициализированному объекту!
Возможно конечно у коннекшнФектори есть какие то свои особенности, но разве ты не должен написать что то вроде connectionFactory = new ConnectionFactory(); ???
1
40 / 40 / 20
Регистрация: 14.05.2015
Сообщений: 116
06.08.2015, 01:50
Левиафам, можете попробовать ещё так:
Java
1
@Resource(lookup = "java:comp/env/jms/_defaultConnectionFactory")
Цитата Сообщение от Welemir1 Посмотреть сообщение
но разве ты не должен написать что то вроде connectionFactory = new ConnectionFactory(); ???
не, не должен.
1
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
06.08.2015, 11:06  [ТС]
Спасибо ребят за варианты, я перепробовал и всё равно не помогло(((((
Я на другом форуме нашел такую же тему с такой же проблемой:
Там парень сказал что запустил этот код, но из его сказанного я вообще не понял что он сделал для этого, его слова были
"Запустил я этот код, проблема была в том, что я запускал из IDE а не из сервера аппликаций."
Сервер апликейшен в моем случае гласфиш, как он из него запустил, для меня загадка. И вообще оно не должно запускаться из сервера, к нему обращаются. Наверно я сильно что-то путаю. Подскажет кто-нибудь???


Я попробовал сделать подключение через jndi вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 public static void main(String[] args) throws JMSException, NamingException {
 
 
        Context ctx = new InitialContext();
 
        ConnectionFactory qcf = (ConnectionFactory)ctx.lookup("jms/__defaultConnectionFactory");
 
        Connection con = qcf.createConnection();
 
        System.out.println(con);
 
 
        QueueSession session = (QueueSession) con.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = null;
        try{
            queue = (Queue)ctx.lookup("jms/Example1Queue");
        }catch(NameNotFoundException nnfe){
            queue = session.createQueue("jms/Example1Queue");
            ctx.bind("jms/Example1Queue",queue);
        }
 
    }
Выдает слException in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitia lContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultIn itCtx(InitialContext.java:313)
at javax.naming.InitialContext.getURLOrDefa ultInitCtx(InitialContext.java:350)
at javax.naming.InitialContext.lookup(Initi alContext.java:417)
at JMS.JMSClient.main(JMSClient.java:21)
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:497)
at com.intellij.rt.execution.application.Ap pMain.main(AppMain.java:140)
едующую ошибку:

Добавлено через 1 час 5 минут
@Resource(mappedName = "jms/__defaultConnectionFactory")// "mappedName" на сколько я понял это просто имя переменной (оно не зарезервировано), она может иметь разное название. В конечном итоге результат приходит в переменную connectionFactory.
private static ConnectionFactory connectionFactory;

Мораль в том что конечно же я ищу объект по имени jndi, в то время как этот объект помимо имени имеет в себе определенный пул в моем случае "jms/__defaultConnectionFactory-Connection-Pool" и пул создан для "javax.jms.ConnectionFactory" вот и весь путь
0
40 / 40 / 20
Регистрация: 14.05.2015
Сообщений: 116
06.08.2015, 12:07
Левиафам,
Цитата Сообщение от Левиафам Посмотреть сообщение
И вообще оно не должно запускаться из сервера, к нему обращаются.
в том числе приложения, работающие на сервере. Я сразу подумал, что вы это и реализуете.

Вы хотите обращаться к службе jms из удалённого клиента? Если да, то дерзайте. И да: сервер запустите вручную, без IDE
0
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
06.08.2015, 18:17  [ТС]
По поводу того что я хочу. Я имею среду IDE(идея) в которой создал проект, в этом проекте создал класс. Так же из среды установил сервер "рыбыка". Мой проект работает с этим сервером. С IDE я запускаю сервер. Реализация самого класса описана выше (последний исходник). Я пытаюсь запустить этот класс (но выдает ошибку). И конечно же все необходимые ресурсы я создал на сервере черз вебинтерфейс (так же ссылки на картинки дал). Я думаю тут всё предельно ясно что я хочу.

Добавлено через 5 часов 52 минуты
Всё,разобрался я)
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
06.08.2015, 19:26
Цитата Сообщение от Левиафам Посмотреть сообщение
Всё,разобрался я
напишите решение. Может пригодится кому
0
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
07.08.2015, 10:47  [ТС]
Если необходимо отправлять сообщения из отдельного клиента, то необходимо будет стандартным образом получить доступ к объектам по их JNDI имени из контекста, я не так обращаюсь. Мое обращение возможно если приложение выполнится на сервере (в упаковке WAR). А обычный класс нужно запихнуть в джарник, и запустить (уже из командной строки а не ide)......короче как-то так. Обычный класс не выполнить на сервере (.class), но если такое возможно сделать то будет здорово)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.08.2015, 10:47
Помогаю со студенческими работами здесь

java.lang.NullPointerException
Сегодня начал пробовать писать на Java. столкнулся с ошибкой. Создал 2 файла fibonachi.java и MassivClass.java Вот код первого: ...

Java.lang.NullPointerException от сервлета
Добрый день! Целью является вывести данные из бд на jsp страницу при помощи сервлета. Вроде все сделал согласно структуре MVC, но сервлет...

Error 500: javax.servlet.ServletException: java.lang.NullPointerException
При входе в систему Сбербанк Онлайн выходит ошибка "]Error 500: javax.servlet.ServletException: java.lang.NullPointerException. Звонила...

Ошибка java.lang.NullPointerException при добавлении записи в базу данных
Здравствуйте! Подскажите, пожалуйста, почему 15-ая строка возвращает нулевое значание? Что не так? Соединение находит, доходит до 15...

Handler processing failed; nested exception is java.lang.NoSuchMethodError
public class CreateProductDTO { @NotEmpty private String name; @NotEmpty private String category; @NotEmpty private...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru