Desarrollo WEB.


Las practicas de programación orientadas a la web son muy cambiantes en el tiempo. Es necesario conocer e implementar tecnologías, conocer lenguajes,integrar comunidades,usar Ides, etc, recientes, para responder al mercado que se acerca.

Mostrando entradas con la etiqueta software. Mostrar todas las entradas
Mostrando entradas con la etiqueta software. Mostrar todas las entradas

martes, 14 de mayo de 2013

Ireport y el error : net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression

Cuando se usa la tecnología ireport para generar reportes, se presentan algunos detalles a tener en cuenta, cuando de su implementación en J2EE se trata.
  • Groovy es un lenguaje de desarrollo al igual que java.
  • Ireport contiene mecanismos para generar reportes en .pdf, .xls, etc. Su tecnología permite que las plantillas .xml que generan el contenido dinámico sea editadas en el ide en cualquier sistema operativo. Si no fuera así ireport no tendría versiones según el sistema operativo, es decir esa es una opción descartada en el proceso de test de fallos.
  • Ireport es un ide para editar plantillas xml que generan contenido en diferentes formatos
  • Jasperreport es la librería que permite transformar a partir de plantillas xml un archivo .pdf, .xls, etc.
  • Jaspersoft es la comunidad creadora de todo este cuento.

Mensaje de error enviado por el servidor sobre la excepción
 lanzada de ireport  cuando se trabaja con groovy.

[#|2013-05-14T15:53:21.684-0500|WARNING|glassfish3.1.2|javax.enterprise.resource
.webcontainer.jsf.lifecycle|_ThreadID=99;_ThreadName=Thread-2;|#{
controllerReporte.generarImpresion('reporte_comercial_pedidos.jasper',
comercialPedidoController.selected.idComercialPedido,'OF')}: 
net.sf.jasperreports.engine.JRRuntimeException: 
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
Source text : new java.lang.Integer(1)
javax.faces.FacesException: 
#{controllerReporte.generarImpresion('reporte_comercial_pedidos.jasper',
comercialPedidoController.selected.idComercialPedido,'OF')}: 
net.sf.jasperreports.engine.JRRuntimeException: 
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
Source text : new java.lang.Integer(1) at 
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.
java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)
at 
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.
java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at 
org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

Para dar solución se configura el ireport para que su compilador sea java mas no groovy. igualmente a cada reporte se le configura su lenguaje como java no groovy.

Configuración de propiedades en el reporte.

viernes, 29 de marzo de 2013

Configurando Suse 12.3 para Desarrollo de Software

Este pequeño tutorial presenta una serie de pasos básicos para configurar un linux suse en su versión 12.3 y empezar a desarrollar aplicaciones web con netbeans 7.3, glassfish y postgres.
  • Después de instalar suse 12.3, ejecutar Actualización del Sistema. 
     
  • Configurar Internet. 


     
  • Instalar filezilla para accesos por ftp 
     
    • Descargar rpm 64 bit
    • Click derecho sobre el rpm - abrir con - añadir/quitar programas
  • Instalar navegador Google Chrome 
     
    • zypper ar http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome (para 64 bit)
    • zypper ref
    • zypper in google-chrome-stable
  •  Instalar postgres 


        
    • instalar unixODBC desde el gestor de software
    • Descargar la ultima versión de postgres desde aqui
    • ingrese a gestor de archivos modo super usuario
    • Click derecho sobre el archivo .run - propiedades - pestaña permisos - es ejecutable - aceptar
    • Espere un poco mientras abre el Instalador en modo gráfico.
    • Directorio de instalación /opt/PostgreSQL/9.2/
    • mediante stack builder instalar pgJDBC y psqlODBC
  • Instalar java SE 

     
    • descargar java jdk y java jre, ultima versión desde aqui
    • tener en cuenta descargar las versiones adecuadas.
    • Click derecho sobre el rpm - abrir con - añadir/quitar programas
    • tener en cuenta el siquiente post 
  • Instalar NetBeans 7.x 
     
    • Descargar ultima versión desde aqui
    • Click derecho sobre el archivo.sh - propiedades - pestaña permisos - es ejecutable - aceptar.
    • Ejecutar netbeans, activar plugins y actualizar.
  • Instalar XAMPP.  
     
    • descargar ultima versión desde aqui  
    • ingrese en una terminal en modo super usuario y descomprima usando tar xvfz xampp-linux-1.8.1.tar.gz -C /opt
    • Para arrancar simplemente use /opt/lampp/lampp start
    •   ...
Esto es todo hasta el momento, luego actualizare con otras cositas acerca de glassfish 3.x y netbeans 7.3

sábado, 1 de septiembre de 2012

Desplegar un EAR en glassfish

Glassfish en un potente servidor de aplicaciones j2ee, trae una excelente interfaz gráfica para la administración de recursos en el servidor., desde este panel  se pueden realizar la mayor cantidad de tareas asignadas a un administrador de servidor y llevar el control del rendimiento de las aplicaciones.

Netbeans es una herramienta muy practica para desarrollar aplicaciones empresariales j2ee. Este IDE nos permite realizar después de una ejecución el despliegue automático del EAR en un domain virtual de una manera muy fácil. Cuando queremos construir o reconstruir un EAR debemos simplemente accionar el modo debug para que el IDE fabrique nuevamente un EAR con los cambios mas recientes.
Para ingresar al modo de consola de glassfish, arranque el servidor por consola o desde Netbeans y use http://localhost:4848 para acceder al panel gráfico, si quiere permitir acceso a este panel de admin desde otro nodo en la red, active el dass para que puedan acceder de forma segura a través de https.



Para desplegar un EAR primero hay que saber bien que es?, que contiene? y que recursos necesita configurarle al servidor para que identifique los recursos de conexion a Motores de BD y de persistencia.



Como ya sabemos un EAR es un paquete donde se encuentran compresos todos los módulos que comprenden una aplicación j2ee, en su interior existe una carpeta llamada lib, la cual es la contenedora de todas las librerías que se usen en los diferentes módulos incluyendo los drivers de conexión para java y X motor de base de datos.

  • Despliegue de un EAR


    • Configuración del pool de conexión.
    • Configuración del JDBC
    • Despliegue del EAR
      • Desde un archivo local a servidor local
      • desde un archivo local en el servidor al glassfish en el servidor
      • Re despliegue del EAR
      • Respaldo a archivos físicos construidos previamente después del despliegue anterior.


miércoles, 24 de agosto de 2011

La Humilde tarea del Progamador.

Hay dos sendas importantes para llegar a la cuspide del desarrollo de software (Aquitectura, diseño), una es yendo por el camino de la programacion de computadoras luego al desarrollo y otra es por la senda directa del desarrollo de software. las dos son equivalentes , el desarrollo de software nos muestra claramente que el progamador es un ente importante en la produccion,  pero no entiende que hace!. mientras que cuando conocemos lo que hariamos como programadores se entiende el valor grato de la humilde tarea de programar computadores y de la influencia en los detalles de la elaboracion. 

Ejemplo: Es como cuando construimos una casa, quienes lo hallan echo tendran en memoria que es necesario una serie de planos entre los que estan de cubiertas, de desagues, de estructuras, de planta, electrico, de desague, etc. en estos planos existe una simbologia y un nivel de abstracion en el que el ingeniero o jefe de obra interpreta que hay que ubicar una ventana a tantos metros del suelo o a tal distancia del techo con unos bordes(Filetes) visualmente esteticos, el maestro pone la ventana y junto con el ingeniero se determina el nivel de detalle de estos filetes que enmarcan la venta y de la buena nivelacion de su apertura. Pero, eso no esta en el plano, sin embargo el arquitecto lo expreso en su simbologia y hay que hacerlo(Poner la Ventana en un marco) porque es el detalle, poner la ventana y detallar al maximo los filetes para que esta se vea enmarcada elegante. Asi mismo es la tarea del programador implementar los detalles en los metodos de las clases donde se llevan a cabo las operaciones del negocio, estas operaciones le son dadas con claridad y es para el una herramienta eficiente en el proceso de programacion.

Es de hay que viene la importante tarea de que como modeladores y desarrolladores (Arquitectos), implementemos unos buenos diseños de software con tecnicas modernas como UML

Creo que soy un poco enrredado para escribir esto pero ire depurando el texto con el tiempo.

Dentro de los oficios que estudie para querer realizar, la programacion nunca estubo presente, y cuando lo estubo, de hay en adelante me ha otorgrado una guia para la realizacion de una vida profesional llena de exitos intelectuales, morales y relacionales.

Anteriormente el programador debia realizar un programa, este trabajo era supremamente engorroso para EL porque debia realizar todo un plano arquitectonico de software en la mente, alli se quedaba y se hiba plasmando poco a poco en el DOS, porque muy pocos recursos habian para la elaboracion de este recurso sofware quien a esta fecha es uno de los activos mas importantes en nuestras vidas y en las empresas del mundo.
Con la Llegada de estas nuevas herramientas, tecnicas y documentacion de APIS, como: UML, MDA, MDD,JDeveloper, Eclipse Ganymedela la construccion de software hoy es una maginifico trabajo en tiempo de programacion minima pero con tiempo de modelamiento prudente.

En conclusion ser Programador es una excelente opcion de vida, y una tarea inrremplazable por maquina o tecnica alguna. En los modelamientos, a nivel de abstracion siempre habra un porcentaje medio donde el nivel del detalle solo requiere ser tarea del programador.

martes, 23 de noviembre de 2010

Modelado de Software mediante UML2

Aplicación WEB para el Control en Línea de Reservas de Salas del Departamento de TICS en la I.E. Los Pinos.

Este proyecto es desarrollado como trabajo final en la asignatura de Ingenieria de Software II  bajo la supervicion del Ingeniero Edwardo Millan a quien agradezco profundamente por las enseñanzas brindadas en clase.


Propósito del sistema

Sistema de información en línea (Aplicación Web), que permite llevar a cabo el control general para un departamento de TIC (Tecnologías de la información y la comunicación), en la Institución Educativa Los Pinos de la Ciudad de Florencia.

Sistema propuesto

Se Propone el desarrollo de un sistema de control orientado a la web para el control de un Departamento de Tecnologías de la Información y la Comunicación permitiendo realizar gestión de recursos, usuarios y control de salas de sistemas. Como el proyecto abarca gran tiempo en el desarrollo de sus módulos se desarrollara para esta primera versión solo el modulo de reserva de salas en línea.

Requerimientos funcionales 
    • ·         Consultar Horario de Disponibilidad de las Salas. 
    • ·         Ver historiales de reservas y ver reserva actual en servicio. 
    • ·         Realizar reservas en línea. 
    • ·         Un administrador de salas debe aprobar o rechazar la solicitud de una reserva y enviar por correo electrónico un mensaje de aprobación o rechazo al solicitante. 
    • ·         Ingresar novedades por parte del administrador o ingresar recomendaciones de parte del usuario servido, si existen, al terminar cada uso de sala (reserva). 
    • ·         Gestionar Inventarios de salas de sistemas (Hardware y Software) y actualizar inventarios a medida que vallan surgiendo novedades durante el préstamo de las salas. (Pendiente por falta de tiempo)
    • ·         Gestionar usuarios del Sistema (Listar, editar, eliminar, agregar, actualizar). 
    • ·         Entregar y Recibir salas por parte del administrador de las salas y el usuario que usa el servicio de reserva. 
    • ·         El Administrador deberá Generar Reportes en .PDF de forma mensual para cada sala.

    Requerimientos no funcionales 

      • ·         El software debe estar desarrollado (construido) en una herramienta libre (NetBeans 6.8) y con almacenamiento de datos en un motor libre (mysql). 
      • ·         Desarrollo en lenguaje Java (JSP) en combinación con tecnología ajax usando el Framework Ext.js de Sencha. 
      • ·         Debe estar Desarrollado aplicando una arquitectura J2EE
      • ·         Uso de la metodología de desarrollo de software RUP 
      • ·         Uso de la herramienta Visual Paradigm para modelamiento UML.

        lunes, 3 de marzo de 2008

        Paquetes de Clases en NetBeans (Package)


        Al igual que en Eclipse las diferentes clases se organizan por paquetes, esto con el fin de estructurar una mejor arquitectura para nuestro software en desarrollo. ver Hola mundo
        File > New File > Java Classes > Java Package...proceso para crear un nuevo paquete de clases.
        Un grupo de clases en el interior de un paquete se comunicaran de tal forma que no necesitan referenciarse la una de la otra, simplemente con su llamado basta.

        ejemplo:
        package clases; //ya con esto la clase buscara otras clases en esta ubicacion que es la misma //donde se encuentra
        Cuando necesitamos clases de otros paquetes pues simplemente hacemos la importacion desde el paquete donde se encuetre dentro de nuestra aplicacion , hoy en dia grandes centros de desarrollo como la sun de microsystems permite hacer uso de sus paquetes de librerias ubicadas en centros de acopio de sus servidores.

        Ejemplo:
        import clases.conexion; //desde nuestra aplicacion
        import http://es.sun.com/org/apache/conection; ///desde servidores externos.

        los paquetes de clases que mas adelante formaran las llamadas librerias son muy importantes en la arquitectura del software, una estructura de paquetes bien delieneada podra mantener en constante evolucion un software sin importar la naturaleza de este bien sea de escritorio o de ambiente web.

        Descargar Proyecto NetBeans Ejemplo_1