Diferencia entre revisiones de «JMS Con GlassFish»
(No se muestran 13 ediciones intermedias de 4 usuarios) | |||
Línea 1: | Línea 1: | ||
− | Para utilizar JMS con GlassFish | + | [[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> | ||
− | + | 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 | ||
</code> | </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> | </code> | ||
− | [https://glassfish.dev.java.net/nonav/javaee5/docs/DG/beakt.html#beali | + | |
+ | ==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();
}