Buscar en el Blog

viernes, 22 de mayo de 2015

Cómo invocar a un servicio web SOAP usando curl

En ésta publicación explico el procedimiento para invocar un Servicio Web SOAP usando la herramienta de línea de comandos curl.

Para probarlo voy a invocar un servicio web de WebserviceX.NET para obtener la tasa de conversión de monedas (CurrencyConvertor) entre USD y EUR

1. Crear un archivo XML con el contenido de la petición (Request) que se hará al servicio web. En mi caso lo llamaré request.xml con el siguiente contenido:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:ConversionRate>
         <web:FromCurrency>USD</web:FromCurrency>
         <web:ToCurrency>EUR</web:ToCurrency>
      </web:ConversionRate>
   </soapenv:Body>
</soapenv:Envelope>
2. Para invocar el servicio web usando la petición XML (Request) guardada en el archivo, ejecutar el siguiente comando:
curl -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:"  -d @request.xml -X POST http://www.webservicex.net/CurrencyConvertor.asmx -o response.xml
Sí se desea almacenar la respuesta (Response) del servicio web en un archivo usar el argumento -o seguido del nombre del archivo (response.xml)

viernes, 5 de septiembre de 2014

Cómo deshabilitar el modo gráfico en un servidor CentOS

En ésta publicación explico el procedimiento para deshabilitar el modo gráfico en una distribución de GNU/Linux: RedHat, CentOS o Fedora.

1) Editar el archivo /etc/inittab
nano /etc/inittab

2) Cambiar el valor del id 5 al valor de 3 como se muestra a continuación
id:3:initdefault:

El archivo deberá tener un contenido similar al siguiente:
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#

id:3:initdefault:

martes, 26 de agosto de 2014

Cómo asociar una instancia de Vagrant pre-existente

En ésta publicación, explico el procedimiento para asociar una instancia de Vagrant preexistente nuevamente.

Estuve realizando unas pruebas y sucedió que mi configuración de Vagrant fue eliminada y al correr

vagrant status

Obtenía el mensaje de que no tenía ninguna máquina de Vagrant configurada, a pesar de que había creado y provisionado la instancia usando los comandos de Vagrant.

Current machine states:


default                   not created (virtualbox)



The environment has not yet been created. Run `vagrant up` to

create the environment. If a machine is not created, only the

default provider will be shown. So if a provider is not listed,

then the machine is not created for that environment.

Para resolver éste error se tiene que realizar lo siguiente:

1) Sí se está usando VirtualBox, ejecutar el siguiente comando para conocer el ID de la máquina Virtual que se desea asociar

VBoxManage list vms

Por ejemplo: se mostrará algo similar a lo siguiente:

"nombreMaquinaVirtual" {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

2) Dentro del directorio dónde se tiene el archivo Vagrantfile, ir al directorio .vagrant/machines/default/virtualbox y crear el archivo id. En el archivo colocar el ID de la máquina virtual

cd .vagrant/machines/default/virtualbox
nano id

NOTA: el archivo id deberá tener como contenido

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

3) Ejecutar vagrant up para iniciar nuevamente la instancia y listo!!!

viernes, 22 de agosto de 2014

Cómo instalar pip y virtualenv para Python en Mac OS X

En ésta publicación explico el procedimiento para instalar pip en el sistema operativo Mac OS X y virtualenv que permite crear ambientes aislados de Python.

Mac OS X trae instalado por defecto Python, pero es importante instalar pip (Python Package Index) que es un gestor de paquetes de Python y virtualenv que permite tener ambientes de Python aislados con diferentes versiones de paquetes.

Instalación de pip.-

1. Abrir un consola de comandos (Terminal)
2. Descargar el archivo get-pip.py del siguiente link https://bootstrap.pypa.io/get-pip.py

wget https://bootstrap.pypa.io/get-pip.py


3. Ejecutar el siguiente comando:

python get-pip.py


Instalación de virtualenv.-

1. Ir al directorio del proyecto dónde se desea crear el ambiente virtual (virtualenv) y en la consola de comandos (Terminal) ejecutar el siguiente comando:

pip install virtualenv

2. Para activar el ambiente virtual (virtualenv)

source venv/bin/activate

3. Para desactivar el ambiente virtual, ejecutar:

deactivate

Instalación de dependencias.-

1. Crear el archivo pip-requires.txt en la raíz del proyecto

Django==1.6

2. Con virtualenv activado, ejecutar el siguiente comando para instalar las dependencias

pip install -r pip-requires.txt

viernes, 11 de abril de 2014

Keystore Explorer Herramienta para Lidiar con Certificate Chain

Después de un montón de prueba y error intentando instalar el chain de certificados intermedios y raíz (root) para una autoridad de certificación (CA) y sin éxito, me encontré con ésta herramienta:

Keystore Explorer
http://keystore-explorer.sourceforge.net/

Me parece excelente y logró ayudarme a realizar lo que buscaba, la recomiendo al 100%

jueves, 23 de enero de 2014

Cómo corregir un Unsatisfied Link Error en Ubuntu al correr una aplicación Java

En Ubuntu, sí no se tienen instalados los paquetes de librerías gráficas (libswt) para una aplicación Java que posea GUI se suele tener el siguiente error:

java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
    no swt-gtk-3740 in java.library.path
    no swt-gtk in java.library.path

Para resolver esto es necesario instalar las librerías (libswt) usando el siguiente comando:

sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java

sábado, 4 de enero de 2014

Cómo conectarse a AWS desde Mac OS X

En ésta publicación explico el procedimiento para conectarse a Amazon EC2 desde el sistema operativo Mac OS X.

1. Abrir una nueva Terminal y copiar el archivo con la llave de seguridad en un directorio, por ejemplo: $HOME/.ssh/millave.pem

2. Dar los siguientes permisos de seguridad tanto a la llave como al directorio en dónde se copió:

chmod 600 $HOME/.ssh/millave.pem
chmod 700 $HOME/.ssh

3. Usar el siguiente comando para establecer la conexión:

ssh -i $HOME/.ssh/millave.pem usuario@nombrehost

martes, 10 de diciembre de 2013

Cómo Instalar y Configurar Maven en Mac OS X

En ésta publicación explico el procedimiento para instalar Maven sobre el sistema operativo Mac OS X v10.9

1) Descargar la útima versión de Maven del siguiente link: http://mirrors.gigenet.com/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz

2) Copiar el archivo a la ruta en donde se desee copiar Maven, en mi caso: /Applications/Dev/

3) Descomprimir Maven, usando el siguiente comando:

sudo tar -xf apache-maven-3.1.1-bin.tar.gz

4) Configurar las siguientes variables de entorno, editando el archivo .bash_profile

nano .bash_profile

5) Colocar las siguientes variables de entorno:

export M2_HOME="/Applications/Dev/apache-maven-3.1.1"
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"
export PATH=${PATH}:${M2_HOME}/bin

7) Ejecutar el siguiente comando para probar que Maven esté instalado y configurado correctamente

source .bash_profile
mvn - version

Cómo instalar y configurar el JDK v1.7 en Mac OS X

En ésta publicación explico el procedimiento para instalar y configurar el JDK v1.7 en el sistema operativo Mac OS X v10.9

1) Descargar el instalador  (Mac OS X x64) del siguiente link: http://www.oracle.com/technetwork/java/javase/downloads/index.html

2) Abrir una consola de comandos (Terminal) [cmd + space bar, teclear Terminal]

3) Editar el archivo .bash_profile con un editor de texto

nano ~/.bash_profile

4) Definir la variable de entorno JAVA_HOME
 
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
export PATH="$HOME/bin:$PATH:$JAVA_HOME/bin"

5) Grabar el archivo y ejecutar el siguiente comando para actualizar las variables de entorno

source ~/.bash_profile

6) Para verificar la variable de entorno ejecutar el siguiente comando:

echo $JAVA_HOME

martes, 3 de diciembre de 2013

Cómo instalar y configurar Cygwin

Cygwin es una colección de herramientas que son provistas por Linux para que puedan ser ejecutadas en un sistema operativo Windows. Con  Cygwin es posible ejecutar comandos de Linux en Windows.

En ésta publicación explico el procedimiento para su instalación:

1) Descargar el instalador para 32 bits o 64 bits del siguiente link: http://cygwin.com/install.html

2) Seguir los pasos de instalación y seleccionar las herramientas que se desea instalar. Por ejemplo: svn, wget, curl, nano

3) Finalizada la instalación es necesario configurar las siguientes variables de entorno CYGWIN_HOME y PATH para evitar los mensajes de "command not found"

CYGWIN_HOME=C:\cygwin
PATH=...;%CYGWIN_HOME%\bin;

4) Ejecutar Cygwin Terminal y se tendrá una consola de comandos Linux

viernes, 1 de noviembre de 2013

Cómo Instalar Oracle JDK 7 en Ubuntu Server

En ésta publicación explico el procedimiento para instalar Oracle JDK v7 en un servidor Ubuntu.

1. Abrir una consola de comandos (SHELL) y descargar la última versión del JDK como se muestra a continuación:

sudo wget http://www.reucon.com/cdn/java/jdk-7u45-linux-x64.tar.gz

2. Crear el directorio de instalación usando el siguiente comando

sudo mkdir -p /usr/lib/jvm

3. Mover el archivo del JDK al directorio /usr/lib/jvm como se muestra a continuación:

sudo mv /home/ubuntu/downloads/jdk-7u45-linux-x64.tar.gz /usr/lib/jvm

4. Ir al directorio de instalación y descomprimir el archivo del JDK

cd /usr/lib/jvm
sudo tar xzvf jdk-7u45-linux-x64.tar.gz

5. Indicar a Ubuntu dónde se encuentra el directorio de instalación de Java con los siguientes comandos:

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_45/bin/javac" 1

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_45/bin/java" 1

6. Indicar a Ubuntu la instalación Java por defecto con los siguientes comandos:

sudo update-alternatives --set "javac" "/usr/lib/jvm/jdk1.7.0_45/bin/javac"

sudo update-alternatives --set "java" "/usr/lib/jvm/jdk1.7.0_45/bin/java"


7. Configurar la variable de entorno JAVA_HOME usando los siguientes comandos:

sudo nano /etc/profile

Ir al final de la linea y colocar lo siguiente:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export PATH
8. Recargar el PATH del sistema operativo usando el siguiente comando:

. /etc/profile
9. Probar que la instalación fue correcta usando el siguiente comando:

java -version
Se deberá mostrar un mensaje similar al siguiente:

Java(TM) SE Runtime Environment (build 1.7.0_45-b18)

Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)



jueves, 31 de octubre de 2013

Cómo configurar Ubuntu Server para conectarse usando el Escritorio Remoto de Windows

El escritorio remoto de Windows usa el protocolo RDP, en ésta publicación explico el procedimiento para instalar un entorno gráfico liviano KDE y poder conectarse a un Ubuntu Server a través del escritorio remoto de Windows.

Ambiente.-

  • Ubuntu Server 12.04 LTS


Instalación del Entorno Gráfico KDE.-

Abrir una consola de comandos (SHELL) y ejecutar lo siguiente:

sudo apt-get update

sudo apt-get install kde-plasma-desktop

sudo apt-get install kubuntu-default-settings


Instalación de Escritorio Remoto de Windows.-

Instalar el servicio XRDP  usando el siguiente comando:

sudo apt-get install xrdp


Asignar una contraseña al usuario con el cual vamos a conectarnos usando el siguiente comando:
sudo passwd ubuntu


NOTA: en mi caso voy a conectarme con el usuario ubuntu

Abrir una conexión a escritorio remoto de windows, colocar la IP, nombre de usuario, contraseña y LISTO!!!

Referencias.-

https://help.ubuntu.com/community/InstallingKDE

domingo, 8 de septiembre de 2013

Cómo instalar mongoDB como Servicio de Windows

En ésta publicación explico como instalar mongoDB como Servicio del Sistema Operativo Windows:

1) Descargar y ubicarse en el directorio donde se descargó mongoDB. Por ejemplo: c:\mongodb

2) Crear el directorio log

3) Crear el directorio data

4) Crear el archivo mongod.cfg con el siguiente contenido:


logpath=c:\mongodb\log\mongo.log

dbpath=c:\mongodb\data


5) Ejecutar en la consola de comandos lo siguiente:

c:\mongodb\bin\mongod.exe --config  c:\mongodb\mongod.cfg --install


6) Iniciar el servicio con el siguiente comando

net start MongoDB

viernes, 2 de agosto de 2013

Cómo eliminar un salto de línea LF(Line feed, '\n', 0x0A, 10 en decimal) en los datos de una columna de PostgreSQL

Muchas veces nos encontramos con columnas de tipo de dato VARCHAR con valores que poseen saltos de línea (LF - Line Feed). Por ejemplo, supongamos que se tiene la siguiente tabla de base de datos, creada con el siguiente script SQL:

CREATE TABLE TABLA (COLUMNA VARCHAR(128));
INSERT INTO TABLA VALUES ('MAURICIO MURILLO' || CHR(10) || 'ingmmurillo');
COMMIT;
SELECT * FROM TABLA;

Al consultar el registro de la tabla se obtendrá lo siguiente:








Como se puede observar, los datos de la columna COLUMNA contienen un salto de línea representado por /n. Para reemplazar los saltos de línea que se encuentren en la cadena de texto por un espacio en blanco se usa la función regexp_replace como se muestra a continuación:

select columna, regexp_replace(columna, E'[\\n\\r]+', ' ', 'g' ) as columna_nueva from tabla;


El script SQL anterior me permitirá reemplazar los saltos de línea por espacios en blanco.


Cómo generar un TestCase de Mule

Para generar un Test Case de Mule para un proyecto creado a través de un arquetipo de Maven se tiene que realizar lo siguiente:

1) Asegurarnos que en el pom.xml se encuentra la dependencia de JUnit

<dependency>
 <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.9</version>
    <scope>test</scope>
</dependency>

2) Crear una clase en el directorio src/test/java como la siguiente:

package com.blogspot.ingmmurillo.mule.test;

import org.junit.Test;
import org.mule.tck.junit4.FunctionalTestCase;

public class MuleAppFlowTest extends FunctionalTestCase {
    
    @Override
    protected String getConfigResources() {
        return "src/main/app/mule-config.xml";
    }

    @Test
    public void test() {
        try {
            Thread.sleep(4800000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}


3) Ejecutar o hacer debug sobre la clase. Con ésta clase se ejecutará el flujo de mensajería definido en el archivo mule-config.xml

NOTA: Colocar los siguientes parámetros a la JVM para que el TestCase no termine inmediatamente, darle más memoria, ejecutarlo con  la codificación UTF-8 y la configuración regional de en/US.
-Xmx1024m -XX:MaxPermSize=512m -Dmule.test.timeoutSecs=4800000 -Dmule.verbose.exceptions=true  -Duser.country=US -Duser.language=en -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8

martes, 23 de julio de 2013

Cómo crear un explorador de colas (QueueBrowser) para JMS

En ésta publicación, comparto el código Java para crear un explorador de colas JMS:
package com.blogspot.ingmmurillo.jms;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTextMessage;
import org.junit.Test;
import javax.jms.*;
import java.util.Enumeration;

public class JMSQueueBrowser {

    @Test
    public void test() throws JMSException {
        System.out.println("Explorador de Colas JMS (QueueBrowser)");
        String url = "tcp://localhost:61717";                
        String queueName = "test";

        ConnectionFactory connectionFactory =
                new ActiveMQConnectionFactory(url);
        Connection connection = connectionFactory.createConnection();

        connection.start();

        System.out.println(connection.getMetaData().getJMSProviderName() + " JMS " +
                connection.getMetaData().getJMSVersion());

        QueueSession session = (QueueSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue(queueName);
        QueueBrowser browser = session.createBrowser(queue);

        Enumeration e = browser.getEnumeration();

        if (e != null) {

            int i = 0;
            while (e.hasMoreElements()) {
                Object msg = e.nextElement();
                ActiveMQTextMessage m = (ActiveMQTextMessage) msg;
                System.out.println(m.getText());
                i++;

            }
            System.out.println("Nro. Mensajes: " + (i));
        }

        browser.close();
        session.close();
        connection.close();
    }

}

Cómo cambiar la configuración regional y la codificación en Java

Para cambiar la configuración regional y la codificación a UTF-8 en un programa Java se tiene que colocar los siguientes parámetros de la máquina virtual:

-Duser.country=US -Duser.language=en -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8

viernes, 14 de junio de 2013

Cómo conocer qué puerto es usado por un proceso en Windows

En ésta publicación comparta cómo saber qué proceso del sistema operativo está usando un puerto.

Para listar los procesos y los puertos usados del sistema operativo Windows se usa el siguiente comando:

netstat -n -a -o


Una vez identificado el proceso (PID) a través del siguiente comando se puede conocer a detalle cuál es:

tasklist /svc /FI "PID eq 2660"


NOTA: 2660 reemplazar por el identificado del proceso (PID)

Para matar un proceso en Windows a través del PID se usa el siguiente comando:

taskkill /PID 2660 /F

miércoles, 15 de mayo de 2013

Cómo instalar Firefox y FlashPlayer en Ubuntu


En ésta publicación explico el procedimiento para instalar Firefox y FlashPlayer en Ubuntu.

Instalación de Firefox

Para instalar Firefox, abrir una consola de comandos y ejecutar:

sudo apt-get update

sudo apt-get install firefox


Instalación de Flash Player en Firefox

Para instalar FlashPlayer en Firefox, se tiene que realizar lo siguiente:

1. Descargar el archivo comprimido (tar) para la versión de Linux de 32 o 64bits del siguiente link:  http://get2.adobe.com/flashplayer/otherversions/

2. Descomprimir el archivo usando el siguiente comando:

tar xvzf install_flash_player_11_linux.x86_64.tar.gz

3. Al descomprimir se creará un directorio /usr y el archivo libflashplayer.so

4. Copiar el contenido del directorio /usr al directorio /usr del sistema operativo usando el siguiente comando

sudo cp -r usr/* /usr

5. Copiar el archivo libflashplayer.so al directorio de addons de Firefox usando el siguiente comando:

sudo cp libflashplayer.so \/usr/lib/firefox-addons/plugins

6. No olvidar cerrar cualquier Firefox abierto, y volverlo abrir para verificar ésta configuración

lunes, 8 de abril de 2013

Código Java para convertir un archivo en codificación ANSI a UTF-8

En ésta publicación explico el procedimiento para convertir un archivo de texto en codificación ANSI a la codificación UTF-8. A continuación comparto el código:

    String srcAnsiEncoded = new String(srcEncoded, "ISO-8859-15");
    byte[] srcUTF8 = srcAnsiEncoded.getBytes("UTF-8");

En dónde la variable srcEncoded corresponde a un arreglo de bytes con el contenido del archivo de texto.