Diferencia entre revisiones de «JMS Con GlassFish»

De Dos Ideas.
Saltar a: navegación, buscar
(Página nueva: <code> appserv-rt.jar - available at install-dir/lib j2ee.jar - available at install-dir/lib imqjmsra.jar - available at install-dir/lib/install/aplications/jmsra </code>)
 
 
(No se muestran 16 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
 +
[[Category:JMS]]
 +
[[Category:GlassFish]]
 +
Para utilizar [[JMS]] con [[GlassFish]] es necesario incluir en el classpath del cliente los siguientes Jars que pueden encontrarse en el directorio de instalación de GlassFish:
 
<code>
 
<code>
    appserv-rt.jar - available at install-dir/lib
+
directorio-de-glassfish/lib/appserv-rt.jar
    j2ee.jar - available at install-dir/lib
+
directorio-de-glassfish/lib/appserv-admin.jar
    imqjmsra.jar - available at install-dir/lib/install/aplications/jmsra
+
directorio-de-glassfish/lib/appserv-deployment-client.jar
 +
directorio-de-glassfish/lib/appserv-ext.jar
 +
directorio-de-glassfish/lib/j2ee.jar
 +
directorio-de-glassfish/lib/javaee.jar
 +
directorio-de-glassfish/lib/install/aplications/jmsra/imqjmsra.jar
 
</code>
 
</code>
 +
 +
==Enviar un mensaje==
 +
Para enviar un mensaje desde un cliente remoto, es necesario incluir los JAR de GlassFish antes mencionados, y configurar el ''Context'' con las variables correspondientes.
 +
 +
El siguiente ejemplo se conecta a un GlassFish en el equipo "localhost", en el cual está configurado un ''QueueConnectionFactory'' bajo el nombre JNDI "jms/holaMundoConnectionFactory" y una ''Queue'' bajo el nombre JNDI "jms/holaMundoQueue".
 +
 +
<code java>
 +
Properties props = new Properties();
 +
props.setProperty("java.naming.factory.initial",
 +
      "com.sun.enterprise.naming.SerialInitContextFactory");
 +
props.setProperty("java.naming.factory.url.pkgs",
 +
      "com.sun.enterprise.naming");
 +
props.setProperty("java.naming.factory.state",
 +
      "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
 +
props.setProperty("java.naming.provider.url",
 +
      "localhost");
 +
 +
Context jndiContext = new InitialContext(props);
 +
 +
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)
 +
      jndiContext.lookup("jms/holaMundoConnectionFactory");
 +
Queue queue = (Queue) jndiContext.lookup("jms/holaMundoQueue");
 +
QueueConnection queueCon = null;
 +
 +
try {
 +
    queueCon = queueConnectionFactory.createQueueConnection();
 +
    QueueSession session = queueCon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
 +
    QueueSender sender = session.createSender(queue);
 +
    TextMessage message = session.createTextMessage();
 +
    message.setText("Hola, mundo");
 +
    sender.send(message);
 +
} finally {
 +
    if (queueCon != null) {
 +
    queueCon.close();
 +
}
 +
 +
</code>
 +
 +
==Ver también==
 +
[https://glassfish.dev.java.net/nonav/javaee5/docs/DG/beakt.html#beali Documentación de GlassFish]

Revisión actual del 13:17 10 nov 2009

Para utilizar JMS con GlassFish es necesario incluir en el classpath del cliente los siguientes Jars que pueden encontrarse en el directorio de instalación de GlassFish: directorio-de-glassfish/lib/appserv-rt.jar directorio-de-glassfish/lib/appserv-admin.jar directorio-de-glassfish/lib/appserv-deployment-client.jar directorio-de-glassfish/lib/appserv-ext.jar directorio-de-glassfish/lib/j2ee.jar directorio-de-glassfish/lib/javaee.jar directorio-de-glassfish/lib/install/aplications/jmsra/imqjmsra.jar

Enviar un mensaje

Para enviar un mensaje desde un cliente remoto, es necesario incluir los JAR de GlassFish antes mencionados, y configurar el Context con las variables correspondientes.

El siguiente ejemplo se conecta a un GlassFish en el equipo "localhost", en el cual está configurado un QueueConnectionFactory bajo el nombre JNDI "jms/holaMundoConnectionFactory" y una Queue bajo el nombre JNDI "jms/holaMundoQueue".

Properties props = new Properties(); props.setProperty("java.naming.factory.initial",

     "com.sun.enterprise.naming.SerialInitContextFactory");

props.setProperty("java.naming.factory.url.pkgs",

     "com.sun.enterprise.naming");

props.setProperty("java.naming.factory.state",

     "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");

props.setProperty("java.naming.provider.url",

     "localhost");

Context jndiContext = new InitialContext(props);

QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)

     jndiContext.lookup("jms/holaMundoConnectionFactory");

Queue queue = (Queue) jndiContext.lookup("jms/holaMundoQueue"); QueueConnection queueCon = null;

try {

   queueCon = queueConnectionFactory.createQueueConnection();
   QueueSession session = queueCon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
   QueueSender sender = session.createSender(queue);
   TextMessage message = session.createTextMessage();
   message.setText("Hola, mundo");
   sender.send(message);

} finally {

   if (queueCon != null) {
   queueCon.close();

}

Ver también

Documentación de GlassFish