Buscar en el Blog

Mostrando entradas con la etiqueta Apache Tomcat. Mostrar todas las entradas
Mostrando entradas con la etiqueta Apache Tomcat. Mostrar todas las entradas

jueves, 12 de julio de 2012

Cómo exponer un archivo crossdomain en Liferay

En ésta publicación explico el procedimiento para publicar el archivo crossdomain.xml de Flash Player en un servidor Liferay.

1. Ir al directorio de tomcat-X.X.XX del portal y copiar el archivo  crossdomain.xml  En mi caso:

\liferay-portal-6.1.0-ce-ga1\tomcat-7.0.23\webapps\ROOT

2. Ir al directorio WEB-INF para editar el archivo urlrewrite.xml y colocar la siguiente regla

<rule>                
<from>/crossdomain.xml</from>                
<to>/crossdomain.xml</to>        
</rule>
3. Finalmente, probar accediendo al siguiente URL: http://localhost:8080/crossdomain.xml

miércoles, 15 de junio de 2011

Cómo integrar Apache ActiveMQ y Apache Tomcat

En ésta publicación explico el procedimiento para poder conectarnos a un broker de mensajería ActiveMQ desde el contenedor de servlets Tomcat.

Para ésta configuración usaré las siguientes versiones de ActiveMQ y Tomcat:

Librerías necesarias

Suponiendo que TOMCAT_HOME=c:/Tomcat5.5 y ACTIVEMQ_HOME:c:/apache-activemq-5.5.0

Primero, se tiene que copiar las siguientes librerías al directorio TOMCAT_HOME/common/lib
  • activemq-all-5.5.0.jar (ACTIVEMQ_HOME)
  • slf4j-log4j12-1.5.11.jar (ACTIVEMQ_HOME/lib/optional)
  • log4j-1.2.14.jar (ACTIVEMQ_HOME/lib/optional)
NOTA: asegurarse que no se encuentren otras librerías de activemq de versiones anteriores en las aplicaciones web que estén desplegadas en Tomcat.

Configuración del archivo server.xml

En el archivo server.xml que se encuentra en TOMCAT_HOME/conf incluir lo siguiente dentro del elemento GlobalNamingResources:

<GlobalNamingResources>

 <Resource name="jms/ConnectionFactory" 
  auth="Container" 
  type="org.apache.activemq.ActiveMQConnectionFactory" 
  description="JMS Connection Factory"
        factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
  brokerURL="tcp://127.0.0.1:61616" 
  brokerName="activeMQBroker"/>
    
 <Resource auth="Container"
          name="jms/MiCola"
          type="org.apache.activemq.command.ActiveMQQueue"
          description="Cola de mensajes"
          factory="org.apache.activemq.jndi.JNDIReferenceFactory"
          physicalName="com.blogspot.ingmmurillo.queue"/>
    
</GlobalNamingResources>

Nótese que en brokerURL se especifica el servidor en dónde está corriendo Apache ActiveMQ, en este caso se encuentra en la misma máquina. Además, es necesario especificar todas las colas y tópicos a los cuáles se va a conectar, en este caso voy a conectarme a la cola com.blogspot.ingmmurillo.queue

Configuración del archivo context.xml

En el archivo context.xml que se encuentra en TOMCAT_HOME/conf incluir lo siguiente:

<Context>
    
 <ResourceLink global="jms/ConnectionFactory" name="jms/ConnectionFactory" type="javax.jms.ConnectionFactory"/>
 <ResourceLink global="jms/MiCola" name="jms/MiCola" type="javax.jms.Queue"/>
 
</Context>


Configuración del archivo web.xml

En el descriptor de despliegue web.xml que se encuentra en TOMCAT_HOME/conf incluir lo siguiente:

<resource-ref>
        <description>JMS Connection</description>
        <res-ref-name>jms/ConnectionFactory</res-ref-name>
        <res-type>javax.jms.ConnectionFactory</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>

    <resource-ref>
        <res-ref-name>jms/MiCola</res-ref-name>
        <res-type>javax.jms.Queue</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>


Cabe mencionar que con ésta configuración, la conexión a ActiveMQ será visible para cualquier aplicación web desplegada sobre Tomcat.

Código Java para conexión a ActiveMQ y envió de un mensaje

A continuación explico cómo sería el código Java para conectarnos al bróker de mensajería y envíar un mensaje de texto.

//...
Context initContext = new InitialContext();
Context jndiContext = (Context) initContext.lookup("java:comp/env");
ActiveMQConnectionFactory qFactory = (ActiveMQConnectionFactory)jndiContext.lookup("jms/ConnectionFactory");
QueueConnection qConnect = qFactory.createQueueConnection();
qConnect.start();
            
QueueSession qSession = qConnect.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue requestQ = (Queue) jndiContext.lookup("jms/MiCola");
            
QueueSender qSender = qSession.createSender(requestQ);
ObjectMessage msg = qSession.createObjectMessage(new String("Hola, ActiveMQ"));
qSender.send(msg);
qConnect.stop();

martes, 14 de diciembre de 2010

Cómo instalar Apache Tomcat 6 en Ubuntu Server

En ésta publicación explicaré cómo instalar Apache Tomcat 6 en un servidor Ubuntu v10.04.

1. En la consola de comandos (shell) usar el comando apt-get install

sudo apt-get install tomcat6

NOTA: es necesario que el servidor tenga acceso a Internet, ya que el comando apt-get install obtiene los paquetes de instalación de un servidor de Internet.

2. Para instalar la documentación de Apache Tomcat 6 ejecutar el siguiente comando:

sudo apt-get install tomcat6-docs

3. Para instalar la aplicación de administración de Apache Tomcat 6 (Tomcat Manager) ejecutar el siguiente comando:

sudo apt-get install tomcat6-admin

Como se describe anteriormente, la instalación de Apache Tomcat 6 no es complicada pero sí es importante conocer los siguientes aspectos relacionados con la instalación.

Ubicación de los archivos de configuración

Los archivos de configuración se crean en el directorio /etc/tomcat6. Aquí se podrán encontrar los archivos server.xml para poder cambiar el puerto del servidor Tomcat y tomcat-users.xml para poder crear usuarios que utilizarán el Tomcat Manager.

Para editar los archivos de configuración es necesario usar el comando sudo seguido de un editor de texto que puede ser vi o nano. Sí no se tiene experiencia con vi, recomiendo 100% usar el editor de texto nano como se muestra a continuación:

cd /etc/tomcat6 
sudo nano server.xml

cd /etc/tomcat6 
sudo nano tomcat-users.xml

Gestión de los servicios [Iniciar | Detener | Reiniciar]

Para detener el servicio de Apache Tomcat 6 ejecutar el siguiente comando:

sudo /etc/init.d/tomcat6 stop

Para iniciar el servicio ejecutar el comando:

sudo /etc/init.d/tomcat6 start

Para reiniciar el servicio ejecutar el comando:

sudo /etc/init.d/tomcat6 restart

Permisos para el Administrador de Tomcat (Tomcat Manager)

Para que el Tomcat Manager corra sin problemas, es necesario darle los siguientes permisos:

sudo chgrp -R tomcat6 /etc/tomcat6
sudo chmod -R gtw /etc/tomcat6

Además, es necesario crear por lo menos un usuario en el archivo de configuración tomcat-users.xml con el rol manager como se muestra a continuación:


<role rolename="manager"> 
<user username="ingmmurillo" password="1234" roles="manager">