jueves, 25 de octubre de 2012

Ejemplo Servicio Rest con Genexus Java

Servicio Rest con Genexus Java

Crear el modelo de genexus con el generador de java y el DataStore de SQL Server

Configurar modelo con el generador Java
agregar en el classpath las siguientes librerias
(Se pueden encontrar en el directorio <GenexusInstall>\gxjava):
jackson-core-asl-1.5.5.jar
jackson-jaxrs-1.5.5.jar
jackson-mapper-asl-1.5.5.jar
jersey-core-1.4.jar
jersey-json-1.4.jar
jersey-server-1.4.jar


Classpath = gxclassr.zip;GxUtils.jar;.;lucene-core-2.2.0.jar;iText.jar;.\drivers\jtds-1.2.jar;.\drivers\jt400.jar;.\ojdbc14.jar;C:\Tomcat 6.0\lib\servlet-api.jar;jackson-core-asl-1.5.5.jar;jackson-jaxrs-1.5.5.jar;jackson-mapper-asl-1.5.5.jar;jersey-core-1.4.jar;jersey-json-1.4.jar;jersey-server-1.4.jar

ahora ya puedes crear los objetos de tu proyecto

en el momento que lo requieras Generar y ejecuta la aplicacion(F5), la primeras vez les pide los datos de la base de datos
si te marca error en la creacion de la base de datos debes asegurarte que el servidor de sql server permite la conexiones tcpip y el puerto 1433 este configurado

Si el documento te sirvio deja tu comentario o dale clic a google+

Ejemplo:
para consumir el servicio Rest

Crear procedimiento SyncReceive

Rules:
parm(out:&LVC);
Source:
&serverHost = !"192.168.0.3"&serverRestBaseURL = !"/appJavaEnvironment/rest/"&Port = 8080 //para tomcat&Url = !'GetDatos1?fmt=json'&httpclient.Host = &serverHost&httpclient
.Port = &Port&httpclient
.BaseUrl = &serverRestBaseURL&httpclient
.AddHeader(!'Content-type',!'application/json')&httpclient.Execute(!'GET', &Url)&i = 0&Datos1List.FromJson(&httpclient.ToString())
For
&Datos1 in &Datos1List  new     DatoId = &Datos1.DatoId     DatoNombre =
&Datos1.DatoNombre     DatoDireccion =
&Datos1.DatoDireccion
  endnew &i+= 1endforcommit
if
&i = 0
  &LVC = " No existen registros para agregar"else  &LVC = &i.ToString() + " registros agregados"endif

fuentes:
http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,4,61,O,E,0,,31458

7 comentarios:

  1. Excelente aporte para la comunidad Genexus, funcó de una.

    ResponderEliminar
  2. Hola.
    Tengo una consulta:

    Utilizo Gx 9 con generador Java y PostgreSQL. ¿Tengo alguna manera de leer correctamente un archivo en formato JSON, o de convertirlo a .XML?

    Gracias.

    ResponderEliminar
    Respuestas
    1. Perdón, me refiero a si lo puedo hacer en una aplicación Windows, no web.

      Eliminar
  3. ESTIMADOS, MUY BUEN DOCUMENTO.
    QUERIA CONSULTAR...HAY ALGUN PROBLEMA CUANDO "EL GET" DEVUELVE ALGO "MUY GRANDE".
    SIENDO MAS ESPECIFICO...ESTOY ACCEDIENDO A UNA TABLA CON UNA CANTIDAD DE TUPLAS IMPORTANTE (MAS DE 1000, FACIL...), Y EL TIEMPO SE ME DISPARA POR VARIOS MINUTOS Y LUEGO ME DA ERROR.
    HAY FORMA DE HACER UN "GET PARCIAL"?
    MUCHAS GRACIAS, MUY CORDIALMENTE

    FERNANDO.

    ResponderEliminar
    Respuestas
    1. Fernando pudiste resolver tu problema?

      Eliminar
  4. buen dia.
    Utilizo genexus 8 con .net. Necesito acceder a una url que devuelve un formato json y no logro hacerlo.
    ya intente creando una variable httpclient de la siguiente forma:
    &HttpClient.Host= &UrlString
    &HttpClient.Execute('GET','')
    &result = &HttpClient.ToString()

    por favor alguien que pueda ayudarme con esto.mil gracias!
    Cecilia

    ResponderEliminar

Si te ha servido de algo mi aportación, deja tu comentario, gracias