Wednesday, December 22, 2010

Creación de un producto a partir del eclipse

Eclipse te permite extender la funcionalildad añadiendo plugins. Si quieres hacer una solucion (terminología de .NET), producto en Eclipse, es muy fácil.

Primero debes tener correctamente resueltas las dependencias de los plugins. Es muy posible que tu plugin use otros plugins. Si te falta alguna dependencia el producto no se generará.

Pulsamos botón derecho sobre nuestra plugin de eclipse New->Product configuration
Insertamos un nombre de fichero de configuracion y 
seleccionamos en el wizard * use a launch configuration 

En el apartado de Testing pulsamos el link de Synchronize y correguimos los posibles errores. Si nos da un error de  "The plug-in 'org.eclipse.platform' is not in the workspace and cannot therefore be modified. Please import it into your workspace and retry."

Para correguir este error simplemente se importa el plugin en el workspace con la opcion de import ->   Plug-in Development -> plug-ins and fragments. Se muesta una lista de plugins, de la cual seleccionamos 'org.eclipse.platform'

GlassFish V3 Linux:

Para instalar GlassFish en Linux es muy fácil. Existe un manual aqui http://dlc.sun.com/pdf/821-1756/821-1756.pdf

Existen diversos ficheros de instalación. Multiidioma o Inglés  y compresión  zip o auto-instalador

Instalar la última versión de JDK correspondiente.

Autoinstalador
Descargarte la version de Oracle GlassFish Server 3.0.1.sh
Si no tienes un sistema de x-windows, da error al no encontrar las fuentes tipográficas. Puedes usar la instalación en silent mode junto con un fichero de respuestas para la configuración.
Descargarte la version de Oracle GlassFish Server 3.0.1.sh estableces los permisos de ejecución y sigues los pasos.
No he conseguido instalarlo con el auto-instalador. Así que he optado por el formato zip

Multiidioma

En la versión multiidioma al desplegar un War, me muestra un error. premature end of file. Es un error relacionado con el analizador lexico de XML. No he conseguido solucionarlo.

http://www.oracle.com/us/products/middleware/application-server/oracle-glassfish-server/index.html

Así que la única opción que me ha funcionado ha sido Ingles en formato zip.
ogs-3.0.1.zip

Tuesday, December 21, 2010

GlassFish V3 Linux: process already using the admin port 4848

-- In English

when I run  glassfishv3 in linux trhow this error

glassfishv3/glassfish/bin# ./asadmin start-domain domain1
 

There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server.



I havent any port open try -> netstat -tlunp 
I thought, is this a problem IPV6? no 

the problem that  the file /etc/host  havent PC name with IP
add this line in the file.

ip_PC name_PC
192.144.168.2 miserver


This works




--In spanish.

Al lanzar glassfishv3 en linux recibo este error

glassfishv3/glassfish/bin# ./asadmin start-domain domain1
 

There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server.



Evidentemente no tengo ningún puerto en uso netstat -tlunp 

Pensaba que era problema del soporte de IPV6, pero tampoco.

Así, ¿que cual es el problema?
El problema es que en el fichero /etc/host no esta definido en nombre del equipo con su ip
así que simplemente hay que añadir

ip_del_equipo nombre_del_equipo
192.144.168.2 servidor


Ya está funcionando.







Friday, December 17, 2010

eclipse jet

El JET es la creacion de unas plantillas para la generacion de clases fuentes java, para la creacion de ficheros de texto, parecido al velocity, en el ejemplo creamos XML.
A partir de un formato similar al JSP, se generar los ficheros fuentes java.
El fichero plantilla de JET es parecido a esto con la extension xmljet
. Esto genera un fichero .java para la creacion de ficheros XML
<%@ jet
    package="pais.empresa.proyecto.modulo"
    class="NombreClaseGenerada"
    skeleton="generator.skeleton" %>

<% String variable = (String) parametro1; %>
//fichero XML a generar
<xml><dato><%= variable%>"</dato></xml>



Para pasar parametros hay que incluir otra plantilla de ficheros generator.skeleton (en formato java) que se agregará como cabecera a cada uno de nuestras plantillas JET  para generar los ficheros fuentes.

public class CLASS {

     public String generate(String parametro1) {
         return "";
     }
}

Donde CLASS es sustituido por el JET por el parametro que hemos puesto en la plantilla JET en el apartado de  class="NombreClaseGenerada"

Wednesday, December 15, 2010

Creacion de Web Service con GlassFish

Para la creación de Web Service dentro de GlassFish V3 es mucho mas fácil si cabe que con JBoss.


Para tal propósito he usado NetBeans 6.8. Si  no tenemos configurado el servidor de GlassFish en NetBeans, lo añadimios
Primer paso crear un proyecto Web Aplication. Dentro de él se crean una serie de carpetas y ficheros de configuración por defecto. Creamos nuestro Pojo al cual le añadimos la annotation @WebService en la definición del nombre de la clase.
Para desplegar el Web Service pulsamos deploy encima del proyecto y ya esta.

Si queremos ver el War, solo tenemos que ir a la vista de ficheros ir al fichero build.xml y pulsar sobre el la acción de dist

Tuesday, December 14, 2010

diferencia entre orquestacion y coreografía

Leyendo y leyendo, todavía no he encontrado ningún artículo que ponga claramente cual es la diferencia entre estos conceptos. Al final, creo que hemos sacado una conculsión que cualquiera que crea que es erronea que lo diga.
Un Web service debe ser un servicio de negocio. Este servicio (de negocio) tiene un conjunto de operaciones (operaciones informáticas) que hay que ejecutarlas para llevarlas a buen termino de este servicio de negocio. Por ejemplo, para hacer una compra en una Web, tienes un WS con un conjunto de operaciones (informáticas). Para realizar la compra tienes que llamar a las operaciones de buscar libro, seleccionar libro, introducir usuario,  y validar compra. Todas las operaciones son un servicio de negocio definidas dentra de un WS.

Para llevar a cabo la ejecucion de un WS y no de una sola de las operaciones, temenos que coordinar las llamadas entre cada una de las operaciones de los Web Services. La coordinacion de estas operaciones es la orquestación. Hay un director que regula cada una de las llamadas. Estas llamadas se pueden realizar con BPEL para dirigir el flujo, aunque existe un estandar de Oasis para tal fin  http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.2-spec-os.pdf 

Si queremos realizar una composicion de WS distintos, por ejemplo, comprar un libro y enviarlo para regalo, debemos coordinar las distintas llamadas de los WS de negocio, el WS de compra, empresa A y el WS de la empresa de envío del regalo, empresa B.
Cuando queremos llamar a varios WS (distintos negocios) para hacer algun tipo de servicio compuesto, estas llamadas se realizan una detras de otras a través de un BPEL, por ejemplo. Esto es una coreografia. Cada uno de los servicios sabe como actuar, bailan de manera autónoma ( ya que se ha definido en la orquestación), colaboran para dar un servicio compuesto.

Friday, December 3, 2010

junit java eclipse bundle

Estoy realizando un bundle que incluye un conjunto de test con la configuracion de carpetas de maven

src/main/java -> codigo java del bundle
src/test/java -> codigo java de test del bundle

a la hora de compilar y publicar el bundle hay que hacer ciertas modificaciones en el fichero de build.properties

source.. = src/
source.miBundle.jar = src/main/java/,src/test/java
bin.includes = META-INF/,\
               lib/dependencias.jar,\
               miBundle.jar
 Ahora entonces solo hace falta ejecutar desde eclipse "junit para bundles" y ya esta