Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / jms / 14 сообщений из 14, страница 1 из 1
30.05.2007, 17:25:32
    #34562152
GerdaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
есть один класс реализованый двумя способами ( см. ниже) может кто подскажет , почему первый вариант отрабатывается без ошибок , а второй выдаёт Exception, причём , если в первом варианте закоментировать строки :
Hashtable h = new Hashtable();
h.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
получится тот же Exception:
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

1)
import javax.jms.*;
import javax.naming.*;
import java.util.Hashtable;
import java.net.URL;

public class jmsRecipient {
//public jmsRecipient(){

public static void main(String[] args) {
try{
Hashtable h = new Hashtable();

h.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
Context ctx = new InitialContext(h);
QueueConnectionFactory qcf =
(QueueConnectionFactory)ctx.lookup("MyConnectionFactory");
QueueConnection con = qcf.createQueueConnection();
QueueSession session =
con.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
Queue queue = null;
try{
queue = (Queue)ctx.lookup("MyQueue");
}catch(NameNotFoundException nnfe){
queue = session.createQueue("MyQueue");
ctx.bind("MyQueue", queue);
}
// Создадим Consumer
QueueReceiver receiver = session.createReceiver(queue);
// Активизируем Connection
con.start();
//Мы готовы принимать сообщения
for(;;){
//Обратите внимание на использование метода receive()
TextMessage textMessage = (TextMessage)receiver.receive();
System.out.println("Got a message :"+textMessage.getText());
}
}catch(Exception e){
e.printStackTrace();
}
}
}

Работает!

2)
class jmsRecipient:

import javax.jms.*;
import javax.naming.*;
import java.util.Hashtable;
import java.net.URL;

public class jmsRecipient {


public jmsRecipient() {
try{
Hashtable h = new Hashtable();

h.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
Context ctx = new InitialContext(h);
QueueConnectionFactory qcf =
(QueueConnectionFactory)ctx.lookup("MyConnectionFactory");
QueueConnection con = qcf.createQueueConnection();
QueueSession session =
con.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
Queue queue = null;
try{
queue = (Queue)ctx.lookup("MyQueue");
}catch(NameNotFoundException nnfe){
queue = session.createQueue("MyQueue");
ctx.bind("MyQueue", queue);
}
// Создадим Consumer
QueueReceiver receiver = session.createReceiver(queue);
// Активизируем Connection
con.start();

for(;;){

TextMessage textMessage = (TextMessage)receiver.receive();
System.out.println("Got a message :"+textMessage.getText());
}
}catch(Exception e){
e.printStackTrace();
}
}


}

class A :

public class A {

public static void main(String[] args){

jmsRecipient b = new jmsRecipient();

}
}

ругается !
...
Рейтинг: 0 / 0
30.05.2007, 17:33:06
    #34562182
anton_evane
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
Не делай всего в конструкторе и будет тебе счастье.
...
Рейтинг: 0 / 0
30.05.2007, 17:40:42
    #34562227
GerdaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
anton_evaneНе делай всего в конструкторе и будет тебе счастье.

ну если делать не в конструкторе , а в методе , то счастья не прибавляется =(( та же фигня
...
Рейтинг: 0 / 0
30.05.2007, 17:47:34
    #34562258
GerdaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
anton_evaneНе делай всего в конструкторе и будет тебе счастье.

так если не в конструкторе , а в методе делать, счастья не прибавляется. та же фигня
...
Рейтинг: 0 / 0
30.05.2007, 17:48:29
    #34562263
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
обычно пользуюсь jndi.properties до сих пор везло ...
...
Рейтинг: 0 / 0
30.05.2007, 17:54:07
    #34562293
GerdaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
exppобычно пользуюсь jndi.properties до сих пор везло ...
с jndi.properties ошибка пропала, спасибо, но, usss? появилась другая : javax.naming.NameNotFoundException: ConnectionFactory
...
Рейтинг: 0 / 0
30.05.2007, 17:58:43
    #34562309
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
опять не понял ...

вы используете файловый сановский jndi "сервер" ... в нём эту ConnectionFactory ктоннить зарегал? (своё состояние он хранить в корне в текстовом файле).
...
Рейтинг: 0 / 0
30.05.2007, 18:04:20
    #34562335
GerdaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
exppопять не понял ...

вы используете файловый сановский jndi "сервер" ... в нём эту ConnectionFactory ктоннить зарегал? (своё состояние он хранить в корне в текстовом файле).

сори вижу , а как проинециализировать
QueueConnectionFactory qcf ?

если там пусто , должна быть какая то ConnectionFactory для этого "стандартная - существующая" ?
...
Рейтинг: 0 / 0
30.05.2007, 18:05:34
    #34562341
GerdaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
если до этого никто не регел
...
Рейтинг: 0 / 0
30.05.2007, 18:09:23
    #34562352
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
с чего бы ??

кто то должен поднять эти JMS ресурсы . см. конфиг вашей JMS impl (server)

вы ведь хотели использовать MDB. думаю, для получения JMSок целесообразно использовать какойннить ejbсервак .... (если синхронные коммуникации не решают всех проблем)
...
Рейтинг: 0 / 0
30.05.2007, 18:12:22
    #34562358
GerdaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
exppс чего бы ??

кто то должен поднять эти JMS ресурсы . см. конфиг вашей JMS impl (server)

вы ведь хотели использовать MDB. думаю, для получения JMSок целесообразно использовать какойннить ejbсервак .... (если синхронные коммуникации не решают всех проблем)

MDB. ?
...
Рейтинг: 0 / 0
30.05.2007, 18:32:19
    #34562420
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
Message-driven EJBean
...
Рейтинг: 0 / 0
30.05.2007, 18:32:58
    #34562426
GerdaS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
exppMessage-driven EJBean аааа
...
Рейтинг: 0 / 0
30.05.2007, 19:05:42
    #34562517
anton_evane
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jms
GerdaS anton_evaneНе делай всего в конструкторе и будет тебе счастье.

ну если делать не в конструкторе , а в методе , то счастья не прибавляется =(( та же фигня

Надо тогда приводить stack trace хотя бы
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / jms / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]