<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marlon J. Manrique &#187; java</title>
	<atom:link href="http://www.marlonj.com/blog/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marlonj.com/blog</link>
	<description>Resistance is Futile</description>
	<lastBuildDate>Fri, 16 Jul 2010 07:02:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Kaleido para Linux en Ubuntu 10.04</title>
		<link>http://www.marlonj.com/blog/2010/06/kaleido-para-linux-en-ubuntu-10-04/</link>
		<comments>http://www.marlonj.com/blog/2010/06/kaleido-para-linux-en-ubuntu-10-04/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 05:35:37 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[instalador]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[kaleido]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu1004]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=2113</guid>
		<description><![CDATA[Desafortunadamente la versión alfa de la herramienta Kaleido solo estaba disponible para la plataforma MacOS X, pero siendo esta basada en Processing y desarrollada en Java me di a la tarea de bajar la herramienta y crear una version para Linux, utilizando la distribucion oficial, la distribucion oficial de Processing para Linux y armar una [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-full wp-image-2110" style="margin: 5px;" title="kaleido_logo" src="http://www.marlonj.com/blog/wp-content/uploads/2010/06/kaleido_logo.png" alt="" width="201" height="51" />Desafortunadamente la versión alfa de la herramienta Kaleido solo estaba disponible para la plataforma MacOS X, pero siendo esta basada en Processing y desarrollada en Java me di a la tarea de bajar la herramienta y crear una version para Linux, utilizando la distribucion oficial, la distribucion oficial de Processing para Linux y armar una distribucion con estas dos.</p>
<p style="text-align: justify;">La versión oficial de Kaleido viene en un archivo de extension dmg la cual es utilizada en MacOS X para archivos comprimidos o instaladores sencillos, desafortunadamente no hay una utilidad sencilla para abrir estos archivos en Ubuntu, pero afortunadamente encontre una herramienta que permite convertir estos archivos en imagenes iso las cuales si se pueden "montar" en Ubuntu.</p>
<p style="text-align: justify;"><a href="http://www.marlonj.com/blog/wp-content/uploads/2010/06/kaleido_ubuntu_01.png" rel="lightbox[2113]"><img class="aligncenter size-medium wp-image-2111" title="kaleido_ubuntu_01" src="http://www.marlonj.com/blog/wp-content/uploads/2010/06/kaleido_ubuntu_01-600x375.png" alt="" width="600" height="375" /></a></p>
<p style="text-align: justify;">Descargar la version para mac de Kaleido :</p>
<ul>
<li>Ir a la pagina de descarga<br />
<a title="Kaleido Official Site" href="http://kaleido.media.mit.edu/download" target="_blank">http://kaleido.media.mit.edu/download</a></li>
<li>Descargar desde linea de comando<br />
wget http://kaleido.media.mit.edu/sites/kaleido.media.mit.edu/tub/kaleido_001.dmg</li>
</ul>
<p style="text-align: justify;">Para convertir el archivo dmg a iso utilize el DGMExtravtor disponible en <a title="DGMExtractor" href="http://hem.bredband.net/catacombae/dmgx.html" target="_blank">http://hem.bredband.net/catacombae/dmgx.html</a> el cual esta escrito y puede instalarse via Java Web Start, luego se selecciona el archivo y se genera el archivo iso.</p>
<p style="text-align: justify;">Para montar la imagen se realizaron los siguientes pasos :</p>
<ul>
<li>Abrir una consola</li>
<li>Ir al directorio donde esta el archivo iso<br />
cd directorio</li>
<li>Crear un directorio donde se montara la imagen<br />
mkdir kaleidomac</li>
<li>Montar la imagen<br />
mount -o loop -t hfsplus kaleido_001.iso</li>
</ul>
<p>Se descargo la version de Processing para Linux :</p>
<ul>
<li>Descargar Processing para Linux<br />
<a title="Processing Download" href="http://processing.org/download" target="_blank">http://processing.org/download</a></li>
<li>Descomprimir</li>
</ul>
<p>Se copiaron los directorios de Kaliedo con las librerias y el theme a la carpeta de Processing y con esto se construyo la distribucion para Linux.</p>
<p>Para descargar la version no oficial 0.0.1 de Kaleido para Linuxvaya a :<br />
<a title="Unofficial Kaleido for Linux " href="http://code.google.com/p/mprocessinglibs/downloads/list" target="_blank">http://code.google.com/p/mprocessinglibs/downloads/list</a></p>
<p><strong>Problemas : </strong></p>
<ul>
<li>Al momento de ejecutar el sketch creado con la version para Linux se congela la pantalla de Ubuntu aunque es posible conectarse al equipo remotamene para apagarlo.</li>
<li>Al momento de arrastar y soltar los componentes graficos se lanza la excepcion :<br />
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException<br />
at processing.app.graph.kGraph.getDropTarget(kGraph.java:172)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2010/06/kaleido-para-linux-en-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalacion Java en Ubuntu 10.04</title>
		<link>http://www.marlonj.com/blog/2010/05/instalacion-java-en-ubuntu-10-04/</link>
		<comments>http://www.marlonj.com/blog/2010/05/instalacion-java-en-ubuntu-10-04/#comments</comments>
		<pubDate>Tue, 11 May 2010 20:33:26 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[instalacion]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jdk]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[partner]]></category>
		<category><![CDATA[repositorios]]></category>
		<category><![CDATA[sunmicrosystems]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu1004]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=2079</guid>
		<description><![CDATA[Los paquetes de la distribución oficial de Java han desaparecido de los repositorios con que viene configuradas las distribuciones de Ubuntu 10.04, estos paquetes han sido movidos a el repositorio de Partners el cual debe activarse. Esto debido a que el OpenJDK se ha convertido en el paquete open source de la distribucion de Java, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-full wp-image-1625" style="margin: 5px;" title="ubuntu_logo" src="http://www.marlonj.com/blog/wp-content/uploads/2009/04/ubuntu_logo.png" alt="" width="125" height="120" />Los paquetes de la distribución oficial de Java han desaparecido de los repositorios con que viene configuradas las distribuciones de Ubuntu 10.04, estos paquetes han sido movidos a el repositorio de Partners el cual debe activarse. Esto debido a que el OpenJDK se ha convertido en el paquete open source de la distribucion de Java, asi que existen dos posibilidades para instalar el JDK, utilizar las versiones open source como el JDK o habilitar el repositorio de partners e instalar la distribucion de Oracle.</p>
<p style="text-align: justify;"><strong>Instalacion OpenJDK : </strong></p>
<ul>
<li>Abra una consola</li>
<li>Actualice la lista de paquetes<br />
sudo apt-get update</li>
<li>Instalar el OpenJDK<br />
sudo apt-get install openjdk-6-jdk</li>
</ul>
<p><strong>Instalaciones Paquetes de Oracle (su-java6-jdk) :</strong></p>
<ul>
<li>Abra una consola</li>
<li>Adicionar el repositorio de Partners<br />
sudo add-apt-repository “deb http://archive.canonical.com/ubuntu lucid  partner”</li>
<li>Actualice la lista de paquetes<br />
sudo apt-get update</li>
<li>Instalar el JDK<br />
sudo apt-get install sun-java6-jdk</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2010/05/instalacion-java-en-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalacion de Glassfish v2.1 en Ubuntu Server 9.04</title>
		<link>http://www.marlonj.com/blog/2009/10/instalacion-de-glassfish-v2-1-en-ubuntu-server-9-04/</link>
		<comments>http://www.marlonj.com/blog/2009/10/instalacion-de-glassfish-v2-1-en-ubuntu-server-9-04/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 05:58:15 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[instalacion]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu904]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=1967</guid>
		<description><![CDATA[A continuacion se realizara la instalacion de Glassfish version 2.1 el Servidor de Aplicaciones J2EE en un servidor Ubuntu 9.04, permitiendo la ejecucion del servicio al momento de iniciar la maquina. Pasos : Abrir una terminal o conectarse remotamente como administradores del servidor Instalar el Java (es importante instalar la distribucion Java de Sun Microsystems [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="https://glassfish.dev.java.net"><img class="alignright size-full wp-image-1964" style="margin: 5px;" title="glassfish_logo" src="http://www.marlonj.com/blog/wp-content/uploads/2009/10/glassfish_logo.gif" alt="glassfish_logo" width="107" height="86" /></a>A continuacion se realizara la instalacion de Glassfish version 2.1 el Servidor de Aplicaciones J2EE en un servidor Ubuntu 9.04, permitiendo la ejecucion del servicio al momento de iniciar la maquina.</p>
<p style="text-align: justify;">Pasos :</p>
<ul>
<li>Abrir una terminal o conectarse remotamente como administradores del servidor</li>
<li>Instalar el Java (es importante instalar la distribucion Java de Sun Microsystems para evitar conflictos)<br />
sudo apt-get install sun-java6-jdk</li>
<li>Descargar el Glassfish version 2.1 para Linux<br />
<a title="Glassfish Download" href="https://glassfish.dev.java.net/downloads/v2.1-b60e.html" target="_blank">https://glassfish.dev.java.net/downloads/v2.1-b60e.html</a></li>
<li>Descargar utilizando wget<br />
cd /tmp<br />
wget http://download.java.net/javaee5/v2.1_branch/promoted/Linux/glassfish-installer-v2.1-b60e-linux.jar</li>
<li>Crear el usuario bajo el cual se ejecutara el Glassfish, en este caso el usuario se llama glassfish<br />
sudo adduser --system glassfish</li>
<li>Instalar el Glassfish<br />
sudo -u glassfish java -Xmx256M -jar glassfish-installer-v2.1-b60e-linux.jar</li>
<li>Aceptar la licencia</li>
<li>Mover el glassfish al directorio de opt u otro directorio donde se quiere tener la instalacion<br />
sudo mv glassfish /opt</li>
<li>Cambiar los permisos del directorio para poder entrar sin ser superusuario<br />
sudo chgrp -R admin /opt/glassfish/</li>
<li>Ir al directorio de Glassfish<code><br />
</code>cd /opt/glassfish/</li>
<li>Volver ejecutables los scripts de ANT<br />
sudo chmod -R +x lib/ant/bin/</li>
<li>Ejecutar la configuracion<br />
sudo -u glassfish lib/ant/bin/ant -f setup.xml</li>
<li>Iniciar un dominio<br />
sudo -u glassfish bin/asadmin start-domain domain1<br />
(esto puede tomar algun tiempo)</li>
<li>Abrir un navegador y cargar la pagina :
<p>http://&lt;servidor&gt;:4848</li>
<li>Debe cargar el administrador del Glassfish</li>
<li>Para acceder, utilice el usuario admin y la clave adminadmin</li>
<li>Para cambiar la clave :<br />
vaya a Application Server<br />
pestaña Administrator Password</li>
</ul>
<p>Creacion de los Scripts para el inicio automatico del Glassfish cuando se enciende la maquina :</p>
<ul>
<li>Crear con un editor el siguiente script, por ejemplo :<br />
sudo vi /etc/init.d/glassfish</li>
<li>Digitar el siguiente contenido :
<pre>#! /bin/sh

GLASSFISHPATH=/opt/glassfish/bin

case "$1" in
	start)
		echo "starting glassfish from $GLASSFISHPATH"
		sudo -u glassfish $GLASSFISHPATH/asadmin start-domain domain1
	;;
	restart)
		$0 stop
		$0 start
	;;
	stop)
		echo "stopping glassfish from $GLASSFISHPATH"
		sudo -u glassfish $GLASSFISHPATH/asadmin stop-domain domain1
	;;
	*)
		echo $"usage: $0 {start|stop|restart}"
		exit 3
	;;
esac</pre>
</li>
<li>Darle permisos de ejecucion al script<br />
sudo chmod a+x /etc/init.d/glassfish</li>
<li>Pruebe el script deteniendo el servicio<br />
sudo /etc/init.d/glassfish stop</li>
<li>Reinicie el servicio y compruebe que todo funcione<br />
sudo /etc/init.d/glassfish start</li>
<li>Cree los scripts para el inicio automatico del Glassfish<br />
sudo update-rc.d glassfish defaults 90 10</li>
<li>Ahora el servidor inicia y se detiene junto con la maquina</li>
</ul>
<p>Esta guia esta basada en su totalidad de la guia en ingles de Installing Glassfish 2 on Ubuntu en TuxTrainig, que me salvo la vida el dia de hoy !!!</p>
<p>Enlaces :</p>
<ul>
<li>Installing Glassfish 2 on Ubuntu<br />
<a title="Installing Glassfish 2 on ubuntu 7.10" href="http://tuxtraining.com/2008/11/14/installing-glassfish-2-on-ubuntu-710" target="_blank">http://tuxtraining.com/2008/11/14/installing-glassfish-2-on-ubuntu-710</a></li>
<li>Pagina Oficial del Desarrollo de Glassfish<br />
<a title="Glassfish Development" href="https://glassfish.dev.java.net/" target="_blank">https://glassfish.dev.java.net/</a></li>
<li>Sun GlassFish Enterprise Server<br />
<a title="Sun GlassFish Enterprise Server" href="http://www.sun.com/software/products/appsrvr/" target="_blank">http://www.sun.com/software/products/appsrvr/</a></li>
</ul>
<div style="display: none;">VN:F [1.6.8_931]</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2009/10/instalacion-de-glassfish-v2-1-en-ubuntu-server-9-04/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Que es Glassfish ?</title>
		<link>http://www.marlonj.com/blog/2009/10/que-es-glassfish/</link>
		<comments>http://www.marlonj.com/blog/2009/10/que-es-glassfish/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 04:52:41 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sunmicrosystems]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=1965</guid>
		<description><![CDATA[En el mundo del desarrollo de aplicaciones web en Java existen muchas herramientas que permiten crear paginas utilizando JSP (como el popular Tomcat de Apache), pero algunas veces necesitamos ir mas a fondo en la construccion de una aplicacion web y utilizar la version empresarial de Java (J2EE) para construir aplicaciones que respondan a una [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="https://glassfish.dev.java.net/"><img class="alignleft size-full wp-image-1964" style="margin: 5px;" title="glassfish_logo" src="http://www.marlonj.com/blog/wp-content/uploads/2009/10/glassfish_logo.gif" alt="glassfish_logo" width="142" height="114" /></a>En el mundo del desarrollo de aplicaciones web en Java existen muchas herramientas que permiten crear paginas utilizando JSP (como el popular Tomcat de Apache), pero algunas veces necesitamos ir mas a fondo en la construccion de una aplicacion web y utilizar la version empresarial de Java (J2EE) para construir aplicaciones que respondan a una arquitectura mas especializada y nos encontramos que ya no podemos utilizar un simple servidor de aplicaciones, si no que necesitamos un Servidor de Aplicaciones J2EE, que soporte los componentes para la creacion de aplicaciones web empresariales utilizando los estandares sugeridos dentro del J2EE.</p>
<p style="text-align: justify;">De estos Servidores de Aplicacion para J2EE, existen de todos los tamaños, sabores y colores; pero el soportado oficialmente por Sun Microsystem se llama Glassfish el cual viene en una version comercial llamada el Sun GlassFish Enterprise Server y en una version de codigo abierto llamada simplemente Glassfish, la cual posee dos licencias la CDDL y el GPL.</p>
<p style="text-align: justify;">Asi que Glassfish es el servidor de aplicaciones para Java en su version J2EE, que permite la creacion de aplicaciones empresariales con componentes web, transaccionales y de persistencia.</p>
<p style="text-align: justify;">Enlaces :</p>
<ul>
<li>Pagina Oficial del Desarrollo de Glassfish<br />
<a title="Glassfish Development" href="https://glassfish.dev.java.net/" target="_blank">https://glassfish.dev.java.net/</a></li>
<li>Sun GlassFish Enterprise Server<br />
<a title="Sun GlassFish Enterprise Server" href="http://www.sun.com/software/products/appsrvr/" target="_blank">http://www.sun.com/software/products/appsrvr/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2009/10/que-es-glassfish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maratón Nacional de Programación ACIS / REDIS</title>
		<link>http://www.marlonj.com/blog/2009/09/maraton-nacional-de-programacion-acis-redis/</link>
		<comments>http://www.marlonj.com/blog/2009/09/maraton-nacional-de-programacion-acis-redis/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 03:29:43 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[acis]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[icpc]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maraton]]></category>
		<category><![CDATA[nacional]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[regional]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=1957</guid>
		<description><![CDATA[La Maraton Nacional de Programacion ACIS / REDIS es una maraton de programacion a nivel nacional que se lleva a cabo en el segundo semestre del año (tipicamente en los meses de septiembre y octubre), esta maraton esta organizada por la Asociacion Colombiana de Ingenieros de Sistemas y la Red de Decanos y Directores de [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.marlonj.com/blog/wp-content/uploads/2009/09/acis_logo.gif" rel="lightbox[1957]"><img class="alignleft size-medium wp-image-1958" style="margin: 5px;" title="acis_logo" src="http://www.marlonj.com/blog/wp-content/uploads/2009/09/acis_logo-300x112.gif" alt="acis_logo" width="223" height="83" /></a>La Maraton Nacional de Programacion ACIS / REDIS es una maraton de programacion a nivel nacional que se lleva a cabo en el segundo semestre del año (tipicamente en los meses de septiembre y octubre), esta maraton esta organizada por la Asociacion Colombiana de Ingenieros de Sistemas y <span>la Red de Decanos y Directores de Sistemas y sirve de clasificacion a la Competencia Internacional Inter Universidades de la ACM. </span></p>
<p style="text-align: justify;"><span>Para competir en esta maraton se deben tener encuenta varios requisitos : </span></p>
<ol>
<li><span>Ser estudiante universitario</span></li>
<li><span>Tener una carga académica de medio tiempo o mas.<br />
</span></li>
<li><span>Haber comenzado la carrera por lo menos en los 3 años anteriores<br />
(estudiantes de 1 a 6 semestre)<br />
</span></li>
<li><span>Tener menos de 23 años al momento de la realización de la maratón<br />
</span></li>
<li><span>No haber participado mas de cinco veces en la maratón<br />
</span></li>
<li><span>Solo se puede participar por una institucion durante el año<br />
</span></li>
<li><span>No haber pariticipado en dos maratones mundiales </span></li>
</ol>
<p style="text-align: justify;">Para participar se deben crear equipos de tres estudiantes que cumplan los requisitos anteriores, cada equipo tiene un entrenador (Coach) que es el encargado de la inscripcion de los estudiantes en el sistema de registro de la Maraton de ACM y es el representante del grupo ante la organizacion. El Coach generalmente es un docente de la universidad a la cual pertenecen los estudiantes y ademas de registrar los equipos, debe asegurarse que cumplen los requisitos para la participacion, acompañar al equipo en la prueba durante la cual el coach presentara su equipo completo para su registro, los acompañara durante el Calentamiento (Warm Up) y realizara los reclamos despues de finalizar la maraton si existen. Las universidades pueden registrar un maximo de tres equipos, los cuales pueden tener el mismo Coach y enviara a ACIS una carta en la que avala la participacion de los equipos, como tambien se compromete a pagar el costo de la inscripcion a la maraton antes de que esta se realice. Para la realizacion de la maraton la organizacion tiene varias sedes a nivel nacional, los equipos deben registrarse en la sede mas cercana geograficamente, tipicamente las sedes son : Bogota, Bucaramanga, Cali, Cartagena, Medellin y Manizales</p>
<p style="text-align: justify;">El dia de la maraton el coach debe presentarse con su equipo a las 8am para su registro, la entrega de identificaciones y camisetas que el coach y los miembros del equipo deben traer durante el transcurso de la maraton. Despues del registro de todos los equipos se toma un refrigerio, para pasar al Warm Up durante el cual a los equipos se les asigna el puesto de trabajo donde previamente se han instalado los ambientes de desarrollo (C,C++,Java) y el cliente PC<sup>2</sup> software que permite probar las soluciones a los problemas, enviar las soluciones al sistema para ser evaluadas, realizar consultas al jurado durante la prueba. Durante el calentamiento se entregan dos problemas que los equipos deben resolver, para identificar problemas con las herramientas de desarrollo y probar el correcto funcionamiento del software para enviar las soluciones (durante este calentamiento el Coach puede estar presente), al final del calentamiento se pasa a un almuerzo ligero antes de la competencia.</p>
<p style="text-align: justify;">La competencia generalmente comienza a la 1 de la tarde y tiene una duracion de 5 horas, se entregan los enunciados de los problemas los cuales describen el problema que debe ser solucionado, los nombres de los archivos que se deben crear, las entradas suministradas y las salidas (estos enunciados estan en Ingles, por lo cual es importante que los integrantes del equipo tengan buen conocimiento del idioma), cada equipo es responsable de dar solucion a los problemas utilizando los ambientes de desarrollo, libros, codigo impreso y hojas (es recomendable llevar diccionario ingles para los que no manejan el idioma). La estrategia de solucion de los problemas es responsabilidad de cada equipo (se recomienda antes de ir a la maraton realizar simulacros en las universidades).</p>
<p style="text-align: justify;">A medida que los equipos van solucionando un problema, se envia el archivo fuente al PC<sup>2</sup>el cual evaluara la solucion, verificando el programa con casos de prueba y verificara que la solucion pueda ser compilada, no tenga errores de sintaxis, se ejecute en menos del tiempo exigido y arroje los resultados esperados, despues de esta evaluacion se puede consultar el sistema que indicara si fue satisfactorio o sucedio algun error, si es satisfactorio se colocara un globo del color asignado al problema sobre el computador que tiene asignado el equipo, de esta forma los otros equipos pueden saber quienes y que problemas se han solucionado. Adicionalmente existe una pagina web que puede ser vista por los equipos que reporta el estado de todos los equipos a nivel nacional, con el numero de intentos, el tiempo y los problemas que se han desarrollado. Faltando una hora para terminar la maraton, la pagina no se actualiza mas y se deben esperar los resultados finales, unos dias despues (por lo menos tres dias) para ver las posiciones finales de los equipos. Al finalizar la maraton los equipos pueden de nuevo hablar con el Coach y transmitirles las quejas que se tengan, las cuales deben ser reportadas por el Coach al Jurado Local.</p>
<p style="text-align: justify;">Por cada sede se selecciona una representacion que participara en la maraton nacional la cual funciona de la misma manera y se va clasificando de esta manera hasta llegar a la mundial.</p>
<p style="text-align: justify;">Notas :</p>
<ul>
<li>Los participantes no pueden comunicarse con equipos diferentes al suyo durante la competencia.</li>
<li>El Coach debe registrar los equipos antes de la maraton, suministrado el nombre del equipo y los nombres y correos de los integrantes.</li>
<li>El Coach no participa en el concurso, es el representante del grupo ante la organizacion.</li>
<li>No se pueden ingresar telefonos moviles, memorias, dispositivos de almacenamiento o equipos electronicos cuando se desarrolla la maraton.</li>
<li>Los equipos deben tratar de desarrollar programas que den soluciones a los enunciados de los problemas, de la manera mas rapida, teniendo en cuenta que el programa no se puede demorar mas de lo estipulado.</li>
<li>Se puede trabajar en lenguaje C,C++ o Java</li>
</ul>
<p>Mas adelante estaremos hablando de los tipos de problemas que se deben resolver en esta maraton.</p>
<p>Enlaces :</p>
<ul>
<li>ACIS : Maratones de Programacion<br />
<a title="ACIS : Maratones de Programacion" href="http://www.acis.org.co/index.php?id=556" target="_blank">http://www.acis.org.co/index.php?id=556</a></li>
<li>The ACM-ICPC International Collegiate Programming Contest<br />
<a title="ACM-ICPC Programming Contest" href="http://cm.baylor.edu/welcome.icpc" target="_blank">http://cm.baylor.edu/welcome.icpc</a></li>
<li>PC<sup>2</sup><br />
<a title="PC2" href="http://www.ecs.csus.edu/pc2/" target="_blank">http://www.ecs.csus.edu/pc2/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2009/09/maraton-nacional-de-programacion-acis-redis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>soapUI : Herramienta para pruebas de WebServices</title>
		<link>http://www.marlonj.com/blog/2009/05/soapui-herramienta-para-pruebas-de-webservices/</link>
		<comments>http://www.marlonj.com/blog/2009/05/soapui-herramienta-para-pruebas-de-webservices/#comments</comments>
		<pubDate>Tue, 12 May 2009 12:04:55 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[soapui]]></category>
		<category><![CDATA[webservice]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=1829</guid>
		<description><![CDATA[Actualmente cuando se desarrollan servicios web es posible probarlos gracias a que los ambientes de desarrollo crean paginas asociadas con cada uno de los metodos del webservice que permiten hacer las invocacion de los servicios directamente para comprobar su funcionamiento, esto sucede con plataformas como Visual Studio y NetBeans, pero no existen por ejemplo para [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.soapui.org/"><img class="alignleft size-full wp-image-1828" style="margin: 5px;" title="soapui-logo" src="http://www.marlonj.com/blog/wp-content/uploads/2009/05/soapui-logo.png" alt="soapui-logo" width="228" height="60" /></a>Actualmente cuando se desarrollan servicios web es posible probarlos gracias a que los ambientes de desarrollo crean paginas asociadas con cada uno de los metodos del webservice que permiten hacer las invocacion de los servicios directamente para comprobar su funcionamiento, esto sucede con plataformas como Visual Studio y NetBeans, pero no existen por ejemplo para servicios web creados con PHP que soporten WSDL. Estas paginas de prueba tampoco estan disponibles en los servicios web cuando estan en produccion lo que no permiten identificar y probar de manera rapida la funcionalidad de los webservices.</p>
<p style="text-align: justify;">soapUI de eviware es una herramienta que permite rapidamente a traves de una interface grafica, obtener informacion de los webservices, realizar llamados generando las peticiones para cada metodo del webservice y visualizando las respuestas enviadas por el servidor, permitiendo rapidamente identificar las operaciones asociadas con el webservice y permitiendo hacer pruebas rapidamente del funcionamiento de los webservices sin necesidad de recurrir a escribir codigo para crear clientes que consuman los webservices.</p>
<p style="text-align: justify;">soapUI es una de las herramientas que todo desarrollador web debe tener en su arsenal y esta disponible en una version gratuita que puede ser descargada o ejecutada desde el sitio utilizando Java Web Start, para lo cual necesitamos instalar el JRE de Java o tambien una version Pro con caracteristicas avanzadas para aquellos desarrolladores que necesitan herramientas mas potentes. soapUI incluye en sus versiones actuales soporte para servicios web REST, pruebas funcionales y simulacion de webservices.</p>
<p style="text-align: justify;">Para ilustrar su uso, lo utilizaremos para consumir el webservice de Calculadora creado en Java del cual se hablo en una entrada anterior del blog : <a title="Publicar Servicio Web en Java sin Servidor Web" href="http://www.marlonj.com/blog/2009/05/publicar-webservice-en-java-sin-servidor-web/" target="_blank">Publicar Web Service en Java sin Servidor Web</a></p>
<p style="text-align: center;"><a href="http://www.marlonj.com/blog/wp-content/uploads/2009/05/soapui_calculadora.png" rel="lightbox[1829]"><img class="aligncenter size-full wp-image-1830" title="soapui_calculadora" src="http://www.marlonj.com/blog/wp-content/uploads/2009/05/soapui_calculadora.png" alt="soapui_calculadora" width="506" height="302" /></a></p>
<p style="text-align: justify;">Requisitos :</p>
<ul>
<li>Tener instalado Java</li>
</ul>
<p style="text-align: justify;">Pasos :</p>
<ul>
<li>Ir a la pagina oficial de soapUI<br />
<a title="soapUI" href="http://www.soapui.org" target="_blank">http://www.soapui.org</a></li>
<li>Buscar el boton WebStart Now ! o ir al siguiente enlace para ejecutar la version 2.5.1 :<br />
<a title="soapUI 2.5.1" href="http://www.soapui.org/jnlp/2.5.1/soapui.jnlp" target="_blank">http://www.soapui.org/jnlp/2.5.1/soapui.jnlp</a></li>
<li>Esto ejecuta el Java Web Start encargado de instalar la aplicacion en el computador</li>
<li>Puede tardar algunos minutos, deacuerdo a la velocidad de acceso a Internet</li>
<li>Ir al menu File y seleccionar la opcion New soapUI Project</li>
<li>Suministrar la siguiente informacion :<br />
Project Name : Calculadora<br />
Initial WSDL/WADL : http://localhost:4444/CalculadoraService?wsdl</li>
<li>Habilitar la opcion :<br />
Create sample request for all operations</li>
<li>Pulsar el boton Ok</li>
<li>En el navegador ir al item sumar y doble click</li>
<li>Click en Request1</li>
<li>Suministrar los valores de los argumentos a enviar a la suma</li>
<li>Pulsar boton verde en la ventana del request para ejecutar el llamado</li>
<li>La respuesta se visualiza en la otra parte de la ventana con el resultado de la suma</li>
</ul>
<p>Enlaces :</p>
<ul>
<li>soapUI<br />
<a title="soapUI" href="http://www.soapui.org" target="_blank">http://www.soapui.org</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2009/05/soapui-herramienta-para-pruebas-de-webservices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebService con NuSOAP en Servidor Resin</title>
		<link>http://www.marlonj.com/blog/2009/05/webservice-con-nusoap-en-servidor-resin/</link>
		<comments>http://www.marlonj.com/blog/2009/05/webservice-con-nusoap-en-servidor-resin/#comments</comments>
		<pubDate>Sun, 10 May 2009 02:16:23 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[quercus]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[webservice]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=1808</guid>
		<description><![CDATA[Es posible ejecutar un servicio creado en PHP con NuSOAP en el servidor de aplicaciones escrito en Java Resin, esto permite crear webservices que pueden ser alojados en servidores como Apache2 con soporte para PHP, como tambien servidores Java como el GlassFish. Para que los webservices funcionen es necesario instalar una version igual o superior [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.caucho.com/"><img class="size-full wp-image-1754 alignright" style="margin: 5px;" title="resin_logo" src="http://www.marlonj.com/blog/wp-content/uploads/2009/05/resin_logo.gif" alt="resin_logo" width="176" height="64" /></a>Es posible ejecutar un servicio creado en PHP con NuSOAP en el servidor de aplicaciones escrito en Java Resin, esto permite crear webservices que pueden ser alojados en servidores como Apache2 con soporte para PHP, como tambien servidores Java como el GlassFish.</p>
<p style="text-align: justify;">Para que los webservices funcionen es necesario instalar una version igual o superior a la 3.2.1 la cual instalamos en el anterior post (<a title="Instalacion Resin 3.2.1 en Ubuntu 9.04" href="http://www.marlonj.com/blog/2009/05/instalacion-resin-321-en-ubuntu-904/" target="_blank">enlace</a>), como tambien realizar un pequeño cambio en el sel codigo (<a title="WebService en PHP con NuSOAP" href="http://www.marlonj.com/blog/2009/05/webservice-en-php-con-nusoap/" target="_blank">enlace</a>) Servidor donde se reemplaza la lectura de datos via RAW por una lectura de la entrada de datos php://input, quedando de la siguiente forma el archivo servicio.php</p>
<pre class="php">&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #b1b100;">require_once</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'nusoap.php'</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #b1b100;">require_once</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'sumar.php'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #0000ff;">$server</span> = <span style="color: #000000; font-weight: bold;">new</span> nusoap_server<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0000ff;">$server</span>-&gt;<span style="color: #006600;">register</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'sumar'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #0000ff;">$HTTP_RAW_POST_DATA</span> = <a href="http://www.php.net/file_get_contents"><span style="color: #000066;">file_get_contents</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;php://input&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0000ff;">$server</span>-&gt;<span style="color: #006600;">service</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$HTTP_RAW_POST_DATA</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;</pre>
<p style="text-align: justify;">De esta forma es posible ejecutar el servicio web encualquier plataforma o servidor que soporte Java.</p>
<p style="text-align: justify;">Enlaces :</p>
<ul>
<li><span>Resin Application Server<br />
<a title="Resin" href="http://caucho.com/resin/doc" target="_blank">http://caucho.com/resin/doc</a><br />
</span></li>
<li><span>Quercus : Implementacion Java del lenguaje PHP<br />
<a title="Quercus" href="http://quercus.caucho.com/" target="_blank">http://quercus.caucho.com</a></span></li>
<li>Introduction to NuSOAP<br />
<a title="Introduccion a NuSOAP" href="http://www.scottnichol.com/nusoapintro.htm" target="_blank">http://www.scottnichol.com/nusoapintro.htm</a></li>
</ul>
<div style="display: none;">UA:A [1.3.0_631]</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2009/05/webservice-con-nusoap-en-servidor-resin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalacion Resin 3.2.1 en Ubuntu 9.04</title>
		<link>http://www.marlonj.com/blog/2009/05/instalacion-resin-321-en-ubuntu-904/</link>
		<comments>http://www.marlonj.com/blog/2009/05/instalacion-resin-321-en-ubuntu-904/#comments</comments>
		<pubDate>Sun, 10 May 2009 02:04:51 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[caucho]]></category>
		<category><![CDATA[instalacion]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu904]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=1805</guid>
		<description><![CDATA[Instalaremos la versión 3.2.1 de Resin, el servidor de aplicaciones Java y PHP de la empresa Caucho Technology sobre el sistema operativo Ubuntu 9.04 con el fin de probar la ejecucion del scriptHola Mundo en PHP. Antes se habia instalado la version 3.1.9 pero esta version en desarrollo provee gran cantidad de mejoras. Ejecutar Servidor [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.caucho.com/"><img class="alignleft size-full wp-image-1754" style="margin: 5px;" title="resin_logo" src="http://www.marlonj.com/blog/wp-content/uploads/2009/05/resin_logo.gif" alt="resin_logo" width="176" height="64" /></a>Instalaremos la versión 3.2.1 de Resin, el servidor de aplicaciones Java y PHP de la empresa Caucho Technology sobre el sistema operativo Ubuntu 9.04 con el fin de probar la ejecucion del scriptHola Mundo en PHP. Antes se habia instalado la version 3.1.9 pero esta version en desarrollo provee gran cantidad de mejoras.</p>
<p style="text-align: justify;">Ejecutar Servidor :</p>
<ul>
<li>Abrir una terminal</li>
<li>Instalar Java<br />
sudo apt-get install sun-java6-jdk</li>
<li>Descargar una version de Resin<br />
<a title="Caucho Download" href="http://caucho.com/download" target="_blank">http://caucho.com/download</a></li>
<li>En este caso descargaremos la version estable 3.2.1 en version GPL<br />
wget http://caucho.com/download/resin-3.2.1.zip</li>
<li>Descomprimimos el archivo<br />
unzip resin-3.2.1</li>
<li>Cambiamos de directorio<br />
cd resin-3.2.1</li>
<li>Ejecutamos el servidor<br />
java -jar lib/resin.jar start</li>
<li>Abrimo el navegador y cargamos la pagina :<br />
<a title="localhost" href="http://localhost:8080/" target="_blank">http://localhost:8080</a></li>
<li>Debe mostrar la pagina por defecto del servidor con enlaces para la administración y documentación<br />
Si no es asi, verifique que no exista ningun servicio ejecutandose en el puerto 8080, como por ejemplo un servidor Tomcat</li>
</ul>
<p>Crear Script en PHP :</p>
<ul>
<li>Creamos el directorio donde se alojara la el script PHP<br />
mkdir webapps/hola_php</li>
<li>Vamos al directorio<br />
cd webapps/hola_php</li>
<li>Creamos el archivo index.php con el siguiente contenido<br />
&lt;?php echo "Hola Mundo" ?&gt;</li>
<li>Cargamos en el navegador la siguiente direccion :<br />
<a title="localhost" href="http://localhost:8080/hola_php" target="_blank">http://localhost:8080/hola_php</a></li>
<li>Debe mostrarnos una pagina con el texto : Hola Mundo</li>
</ul>
<p>Detener el Servidor :</p>
<ul>
<li>Ir al directorio raiz del Resin y ejecutar el comando :<br />
java -jar lib/resin.jar stop</li>
</ul>
<p style="text-align: justify;">Aunque no es una prueba completa del funcionamiento del soporte del lenguaje PHP en Resin, es el primer paso para comenzar a realizar mas pruebas con scripts mas complejos, frameworks y aplicaciones.</p>
<p style="text-align: justify;"><span>Enlaces :</span></p>
<ul>
<li><span>Resin Application Server<br />
<a title="Resin" href="http://caucho.com/resin/doc" target="_blank">http://caucho.com/resin/doc</a><br />
</span></li>
<li><span>Quercus : Implementacion Java del lenguaje PHP<br />
<a title="Quercus" href="http://quercus.caucho.com/" target="_blank">http://quercus.caucho.com</a></span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2009/05/instalacion-resin-321-en-ubuntu-904/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cliente de WebService en Java</title>
		<link>http://www.marlonj.com/blog/2009/05/cliente-de-webservice-en-java/</link>
		<comments>http://www.marlonj.com/blog/2009/05/cliente-de-webservice-en-java/#comments</comments>
		<pubDate>Fri, 08 May 2009 15:59:22 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[cliente]]></category>
		<category><![CDATA[j2se]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu904]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=1793</guid>
		<description><![CDATA[En entradas anteriores en el Blog creamos un servicio web en Java sin necesidad de utilizar un servidor como Tomcat o Glassfish para la publicacion del mismo, a continuacion implementaremos un cliente en Java generado por medio del WSDL que describe el servicio web. Requisitos : Kit de Desarrollo de Java En este caso utilizaremos [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://java.sun.com"><img class="alignright size-full wp-image-1791" style="margin: 5px;" title="java-sun" src="http://www.marlonj.com/blog/wp-content/uploads/2009/05/java-sun.gif" alt="java-sun" width="110" height="110" /></a>En entradas anteriores en el Blog creamos un servicio web en Java sin necesidad de utilizar un servidor como Tomcat o Glassfish para la publicacion del mismo, a continuacion implementaremos un cliente en Java generado por medio del WSDL que describe el servicio web.</p>
<p style="text-align: justify;"><strong>Requisitos : </strong></p>
<ul>
<li>Kit de Desarrollo de Java<br />
En este caso utilizaremos el Java Development Kit 6 update 13</li>
<li>Para el ejemplo utilizaremos el Sistema Operativo Ubuntu 9.04</li>
</ul>
<p><strong>Generar Codigo para el Cliente en Java :</strong></p>
<ul>
<li>Abrir una terminal</li>
<li>Ejecutar el comando para generar el cliente del servicio web<br />
wsimport http://localhost:4444/CalculadoraService?wsdl</li>
<li>Esto genera el paquete serviciosweb con las clases necesarias para llamar el web service</li>
</ul>
<p><strong>Utilizar el Cliente : </strong></p>
<ul>
<li>Crear un archivo Cliente.java con el siguiente codigo :</li>
</ul>
<pre class="java">&nbsp;
<span style="color: #000000; font-weight: bold;">package</span> serviciosweb;
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Cliente
<span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main<span style="color: #66cc66;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #aaaadd; font-weight: bold;">String</span></a><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> args<span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
                CalculadoraService servicio = <span style="color: #000000; font-weight: bold;">new</span> CalculadoraService<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
                Calculadora calculadora = servicio.<span style="color: #006600;">getCalculadoraPort</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
                <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #aaaadd; font-weight: bold;">System</span></a>.<span style="color: #006600;">out</span>.<span style="color: #006600;">println</span><span style="color: #66cc66;">&#40;</span>calculadora.<span style="color: #006600;">sumar</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<ul>
<li>Java utiliza una clase que representa el servicio completo y un Puerto que implementa los metodos del sevicio, por tal motivo se debe crear el servicio y obtener el puerto para poder consumir el servicio</li>
<li>Compilar el cliente :<br />
javac -d . Cliente.java</li>
<li>Ejecutar el Cliente<br />
java Cliente</li>
</ul>
<p>Enlaces :</p>
<ul>
<li>Creating a Simple Web Service and Client with JAX-WS<br />
<a title="Creating a Simple Web Service and Client with JAX-WS" href="http://java.sun.com/webservices/docs/2.0/tutorial/doc/JAXWS3.html#wp115211" target="_blank">http://java.sun.com/webservices/docs/2.0/tutorial/doc/JAXWS3.html#wp115211</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2009/05/cliente-de-webservice-en-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Publicar WebService en Java sin Servidor Web</title>
		<link>http://www.marlonj.com/blog/2009/05/publicar-webservice-en-java-sin-servidor-web/</link>
		<comments>http://www.marlonj.com/blog/2009/05/publicar-webservice-en-java-sin-servidor-web/#comments</comments>
		<pubDate>Fri, 08 May 2009 15:36:19 +0000</pubDate>
		<dc:creator>marlonj</dc:creator>
				<category><![CDATA[Cacharreos]]></category>
		<category><![CDATA[endpoint]]></category>
		<category><![CDATA[j2se]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu904]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://www.marlonj.com/blog/?p=1790</guid>
		<description><![CDATA[A partir del Java 6 es muy sencillo crear webservices utilizando anotaciones, a diferencia de las versiones anteriores donde era necesario utilizar librerias de terceros, servidores web, gran cantidad de codigo y archivos de configuracion. La mayoria de las veces los webservices los implementamos sobre aplicaciones web por lo que se hace necesario tener un [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://java.sun.com"><img class="alignleft size-full wp-image-1791" title="java-sun" src="http://www.marlonj.com/blog/wp-content/uploads/2009/05/java-sun.gif" alt="java-sun" width="110" height="110" /></a>A partir del Java 6 es muy sencillo crear webservices utilizando anotaciones, a diferencia de las versiones anteriores donde era necesario utilizar librerias de terceros, servidores web, gran cantidad de codigo y archivos de configuracion.</p>
<p style="text-align: justify;">La mayoria de las veces los webservices los implementamos sobre aplicaciones web por lo que se hace necesario tener un servidor como Tomcat o GlassFish para ejecutar la aplicacion web y adicionalmente publicar los servicios web, pero algunas veces solo necesitamos publicar el servicio web para realizar pruebas sin la necesidad un servidor web completo. Esto es ahora posible utilizando un Endpoint que se encarga de publicar el servicio web en una direccion especifica, la cual atiende los llamados al servicio, como tambien genera el WSDL el cual describe el servicio.</p>
<p style="text-align: justify;">A continuación crearemos un servicio web llamado Calculadora el cual posee un metodo llamado sumar que recibe dos numero y retorna la suma de ellos.</p>
<p style="text-align: justify;"><strong>Requisitos : </strong></p>
<ul>
<li>Kit de Desarrollo de Java<br />
En este caso utilizaremos el Java Development Kit 6 update 13</li>
<li>Para el ejemplo utilizaremos el Sistema Operativo Ubuntu 9.04</li>
</ul>
<p style="text-align: justify;"><strong>Implementar el WebService en Java : </strong></p>
<ul>
<li>Abrir una terminal</li>
<li>Crear un archivo llamado Calculadora.java con el siguiente código :</li>
</ul>
<pre class="java">&nbsp;
<span style="color: #000000; font-weight: bold;">package</span> serviciosweb;
&nbsp;
<span style="color: #a1a100;">import javax.jws.WebMethod;</span>
<span style="color: #a1a100;">import javax.jws.WebService;</span>
&nbsp;
@WebService
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Calculadora
<span style="color: #66cc66;">&#123;</span>
        @WebMethod
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #993333;">int</span> sumar<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">int</span> x, <span style="color: #993333;">int</span> y<span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">return</span> x + y;
        <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<ul>
<li>Es necesario suministrar el nombre de paquete el cual sera utilizado como namespace en el webservice.</li>
<li>Se utilizan anotaciones para especificar que la clase es un webservice y el metodo sumar esta incluido en el webservice.</li>
</ul>
<p><strong>Crear el Publicador del WebService : </strong></p>
<ul>
<li>Crear un archivo llamado Publicador.java con el siguiente código :</li>
</ul>
<pre class="java">&nbsp;
<span style="color: #000000; font-weight: bold;">package</span> serviciosweb;
&nbsp;
<span style="color: #a1a100;">import javax.xml.ws.Endpoint;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Publicador
<span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main<span style="color: #66cc66;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #aaaadd; font-weight: bold;">String</span></a><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> args<span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
                Calculadora calculadora = <span style="color: #000000; font-weight: bold;">new</span> Calculadora<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
                Endpoint endpoint = Endpoint.<span style="color: #006600;">create</span><span style="color: #66cc66;">&#40;</span>calculadora<span style="color: #66cc66;">&#41;</span>;
                endpoint.<span style="color: #006600;">publish</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://localhost:4444/CalculadoraService&quot;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<ul>
<li>Este crea un Endpoint el cual crea un servidor web pequeño que recibe las peticiones hechas al webservice</li>
<li>Se debe especificar la ruta en la cual queremos publicar el webservice en forma de direccion web, por ejemplo : http://localhost:4444/CalculadoraService</li>
</ul>
<p><strong>Compilar el WebService : </strong></p>
<ul>
<li>Compilar el codigo fuente del servicio web :<br />
javac -d . Calculadora.java</li>
<li>Compilar el publicador :<br />
javac -d . Publicador.java</li>
<li>Generar los archivos asociados con las anotaciones y el webservice<br />
apt Calculadora.java</li>
</ul>
<p><strong>Publicar el Servicio Web :</strong></p>
<ul>
<li>Ejecutar el Publicador del webservice<br />
java serviciosweb.Publicador</li>
<li>Visualizar el WSDL generado para el servicio (utilizar la url donde se publico el servicio)
<p>http://localhost:4444/CalculadoraService?wsdl</li>
</ul>
<p style="text-align: justify;">Con esto ya tenemos publicado nuestro servicio web, sin necesidad de tener un servidor web como Tomcat o Glassfish, lo que permite realizar pruebas de una forma rapida.</p>
<p style="text-align: justify;">Enlaces :</p>
<ul>
<li>JAX-WS Web Services Without Java EE Containers<br />
<a title="JAX-WS Web Services Without Java EE Containers" href="http://today.java.net/pub/a/today/2007/07/03/jax-ws-web-services-without-ee-containers.html" target="_blank">http://today.java.net/pub/a/today/2007/07/03/jax-ws-web-services-without-ee-containers.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.marlonj.com/blog/2009/05/publicar-webservice-en-java-sin-servidor-web/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
