jueves, 23 de mayo de 2013

Consultando la existencia de un WS desde la consola y telnet

En el siguiente post veremos como consultar si esta disponible un wsdl mediante la consola utilizando telnet.

verificaremos el siguiente wsdl de ejemplo: http://localhost:80/integracion/oneamx/controladora/ivr/proxy/identifyCaller?wsdl

nota: se necesita tener instalado el telnet.

1. verificamos si tenemos instalado el telnet:

    [myuser@mymaquina]# dpkg -l | grep telnet

2. Si está, nos saltamos este paso, sino lo instalamos así (ojo que esto instala el cliente y servidor):

     [myuser@mymaquina]# apt-get install telnetd

3. Una vez instalado el telnet, necesitamos teclear la ip de la maquina y el puerto en donde se aloja el web service.

 [myuser@mymaquina]# telnet www.miws.com 80

4. Luego una vez conectados saldrá algo similar a esto...


Trying 123.123.123.123...
Connected to 123.123.123.123.
Escape character is '^]'.


5. Ahora viene lo que nos interesa, debemos teclear lo siguiente para saber si el wsdl esta disponible o alcansable desde nuestra máquina:

GET /integracion/oneamx/controladora/ivr/proxy/identifyCaller?wsdl HTTP/1.0

como vemos ponemos el comando GET continuado de la ruta del wsdl pero sin el host y el puerto ya que estamos dentro del servidor (vía telnet).

Si esta disponible el wsdl saldrá la información en xml acerca de los tag del ws, en caso de que no tengamos acceso saldrá un html con un Error 404--Not Found o  algun otro tipo de error.

Al hacer esta consulta, automaticamente nos desconectamos del telnet, por lo que para enviar un request debemos reconectarnos siguiendos los mismos pasos que en el principio.

Para enviar un request utilizaremos como ejemplo el siguente código:

nota: Este código también puede ser obtenido mediante el SOAP UI en la pestañita "raw"

entonces, nos conectamos al telnet y ponemos el siguiente código:

POST /integracion/oneamx/controladora/ivr/proxy/planForTariff HTTP/1.0
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "http://planfortariff.selfmanagement.amx.com/PlanForTariff"
Content-Length: 368

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:plan="http://planfortariff.selfmanagement.schema.amx.com">
   <soapenv:Header/>
   <soapenv:Body>
      <plan:PlanForTariffRequest>
         <plan:subscriberIdentifier>30900778</plan:subscriberIdentifier>
      </plan:PlanForTariffRequest>
   </soapenv:Body>
</soapenv:Envelope>

al enviar esto, el WS nos deberia responder con el Response del método.

nota: el parametro Content-Length contiene la cantidad de caracteres del mensaje request (desde <soapenv... hasta </soapenv...), esto lo podemos sacar en algun editor de texto q nos devuelva la cantidad de texto seleccionado, el notepad++ puede servirnos... 

lunes, 20 de mayo de 2013

Creando una variable de entorno

Existen diversas alternativas para crear este tipo de variables, pero primero veamos que son estas variables o que significan.

Las variables de entorno forman un conjunto de valores dinámicos que normalmente afectan el comportamiento de los procesos en una computadora. Sirven para facilitar el uso del sistema, los sistemas operativos incluyen variables predefinidas, que sirven como atajos para poder acceder a comandos y dispositivos. De no tenerlas, para invocar cada comando deberíamos escribir todas las veces la ruta entera de donde se encuentra el archivo del programa, por ejemplo, si quisiéramos crear un nuevo directorio deberíamos decir:

/bin/mkdir mi-direct
...en lugar de
mkdir mi-direct

Existen varias formas de setear variables de ambiente en nuestro sistema Linux, por ejemplo, en el archivo .bashrc el cual se ejecuta cada vez que un usuario inicia sesión, por lo que el archivo esta en la ruta /home/usuario/.bashrc este archivo es un buen lugar para definir nuestras variables de entorno, aunque también existen otros sitios...


Ahora veremos como añadir una ruta a la variable de entorno PATH, que es una variable común para asignar rutas de aplicaciones y comandos que se instalan en el sistema.

Nota: Se puede usar cualquier editor, en nuestro caso usaremos vim. 

1.- Abrir el archivo .bashrc (la ruta esta en /home/usuario/.bashrc).

2.- Para evitar sobreescribir esta variable de entorno (ya que pude estar definida en otro archivo), agregaremos una linea al final del archivo:

export PATH=$PATH:/directorio1:/directorio2:...:/directorioN

o también podemos agregar una nueva variable de entorno, como por ejemplo agregamos la variable para saber la ruta de un servidor Tomcat
export CATALINA_HOME="/opt/tomcat"

3.- Reiniciar la sesión del usuario en la cual se agregó la linea en el archivo .bashrc o ejecutar el comando source, el cual mantiene el valor de la variable de ambiente.


source /home/nombreusuario/.bashrc

4.- Probar que se haya iniciado, escribir:


$PATH

ó para ver las variable creadas, tecleamos:
export