Я могу отправить сообщения очереди JMS снаружи сервера приложений?

Чтобы начать думать об этом, мне нужна модель для того, что означают "инновации".

лучшая модель, которую я видел, является Технологическим Жизненным циклом Принятия. Можно ли получить обзор в этом Статья .

Википедии Используя эту модель, я начал спрашивать меня... в том, какой этап жизненного цикла является самим программным обеспечением? Мы можем думать о "программном обеспечении" как об отличной технологии от оборудования, идущего полностью назад к Babbage, или возможно более точно, леди Ada Lovelace.

, Но это, конечно, оставалось на очень раннем новаторском этапе по крайней мере приблизительно до 1951. Это - запрограммированные компьютеры года, "пошел коммерческий" с точки зрения продажи модели для компьютерного продукта и участков для застройки единиц той модели. Я думаю о машине, которую Univac продал Бюро переписи.

С 1951 приблизительно до 1985, инновации программного обеспечения были многочисленными. Они главным образом имели отношение к расширению промежутка вычислений к еще более широкому полю усилия. Параллельно, массовый маркетинг и массовое производство продолжал снижать стоимость записи до Apple, и IBM PC сделал программируемое устройство распространенным устройством.

Где-нибудь между 1980 и 1985, я сказал бы, что программное обеспечение передало от домена Новатора до домена "Early majority". Извините, парни, но это делает всех из Вас, это участвовало в MS-DOS, Mac, Windows, C++ и Java раннее большинство, а не новаторы. Это не устраняет то, что вы делали значительные инновации на Вашей собственной сфере влияния и в Ваших собственных проектах. Это просто означает, что само поле шло дальше от ранней стадии.

, В то время как предшественник Интернета был вокруг с 1970-х, только когда Al Gore изобрел Интернет (извините), все подняли трубку. На том этапе программное обеспечение передало от раннего большинства покойному большинству. Этот сдвиг был тонким, как вершина кривой нормального распределения предполагает. Не каждый магазин, перемещенный от раннего большинства к покойному большинству одновременно.

я не думаю, что программное обеспечение вполне передало в "вялый" этап все же, но я думаю, что настоящие новаторы занимаются проблемой создания достижений по различным передним сторонам сегодня.

Двумя передними сторонами, о которых я могу думать, являются информационные Устройства и Биоинженерия. Оба из этих полей требуют программного обеспечения, но основная тяга не является инновациями программного обеспечения. Это применяет программное обеспечение к неизведанной территории. Существует, вероятно, много других передних сторон, о которых я даже не знаю.

7
задан Simon Nickerson 25 August 2009 в 15:42
поделиться

3 ответа

У вас должна быть возможность создать InitialContext , который использует сервер JNDI в Geronimo. Затем вы можете использовать это для поиска вашей фабрики соединений JMS и очереди.

Следующий пример был адаптирован из http://forums.sun.com/thread.jspa?threadID=5283256 для использования Geronimo JNDI Factory.

Context                  jndiContext = null;
ConnectionFactory   connectionFactory = null;
Connection             connection = null;
Session                  session = null;
Queue                    queue = null;
MessageProducer     messageProducer = null;   

try
{
    //[1] Create a JNDI API InitialContext object.
    Hashtable properties = new Hashtable(2);

    // CHANGE these to match Geronimos JNDI service

    properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
    properties.put(Context.PROVIDER_URL, "ejbd://127.0.0.1:4201");
    jndiContext = new InitialContext(properties);

    //[2] Look up connection factory and queue.
    connectionFactory = (ConnectionFactory)jndiContext.lookup("jms/ConnectionFactory");
    queue = (Queue)jndiContext.lookup("jms/Queue");

    //[3]
    // - Create connection
    // - Create session from connection; false means session is not transacted.
    // - Create sender and text message.
    // - Send messages, varying text slightly.
    connection = connectionFactory.createConnection();
    session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    messageProducer = session.createProducer(queue);

   //send a message
   TextMessage message = session.createTextMessage(this.jTextSend.getText()); 
   messageProducer.send(message); 

   //example for send some object
   //ObjectMessage message = session.createObjectMessage();
   //MyObj myObj = new MyObj ("Name"); //this class must be serializable 
   //message.setObject(myObj );
   //messageProducer.send(message);
}
catch(Exception ex)
{
   LOG.error(ex);
}
finally
{
     if(connection !=null)
     {
         try
         {
             connection.close();
         }
         catch(JMSException e)
         {
              LOG.error(e);
         }
     }
}
5
ответ дан 7 December 2019 в 12:23
поделиться

Вы можете помещать сообщения в очередь JMS без сервера приложений.

Однако вам нужно знать, как напрямую обращаться к провайдеру JMS - без использования JNDI, поскольку предоставляется сервером приложений JavaEE.

0
ответ дан 7 December 2019 в 12:23
поделиться

Вы можете это сделать, и может быть несколько способов в зависимости от тонкого клиента, обращающегося к очереди. Пример, предоставленный @pjp, будет работать, если у вас есть правильные файлы jar для доступа к рассматриваемому серверу, включая jar, который предоставит вашему приложению экземпляр JNDI. Эти jar-файлы должны быть предоставлены поставщиком и могут включать инструкции по подключению без использования JNDI. Хотя я считаю, что метод JNDI является самым простым и поддерживает согласованное кодирование как на сервере, так и за его пределами.

У каждого поставщика будут разные jar-файлы для обеспечения клиентского доступа, в случае IBM они отличаются для внутреннего поставщика JMS и WebSphere MQ. (поскольку это две разные реализации).

включая jar, который предоставит вашему приложению экземпляр JNDI. Эти jar-файлы должны быть предоставлены поставщиком и могут включать инструкции по подключению без использования JNDI. Хотя я считаю, что метод JNDI является самым простым и поддерживает согласованное кодирование как на сервере, так и за его пределами.

У каждого поставщика будут разные jar-файлы для обеспечения клиентского доступа, в случае IBM они отличаются для внутреннего поставщика JMS и WebSphere MQ. (поскольку это две разные реализации).

включая jar, который предоставит вашему приложению экземпляр JNDI. Эти jar-файлы должны быть предоставлены поставщиком и могут включать инструкции по подключению без использования JNDI. Хотя я считаю, что метод JNDI является самым простым и поддерживает согласованное кодирование как на сервере, так и за его пределами.

У каждого поставщика будут разные jar-файлы для обеспечения клиентского доступа, в случае IBM они отличаются для внутреннего поставщика JMS и WebSphere MQ. (поскольку это две разные реализации).

0
ответ дан 7 December 2019 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: