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 Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

domingo, 8 de diciembre de 2013

Ejecutar Reportes Ireport (java) desde una Aplicación Web php


Cuando surgió la necesidad de ejecutar un reporte .jasper desde una aplicación web php, inicie un proceso de investigación y cacharreo con herramientas que me permitieran llamar un reporte java desde un recurso php. Esta forma sirve tanto para linux como para windows.

Al inicio solo encontré en la red javabridge, pero pasado el tiempo sin obtener resultados después de ensayar muchas formas, decidí ir a una herramienta que hace mucho tiempo había escuchado y hasta leído, una herramienta de caucho(resin) que nos permite ejecutar una aplicación php dentro de un servidor de aplicaciones web en mi caso glassfish. 

Quercus me saco del apuro, lo que hice, y que muchos en la red no enfrentaron fue, no tener que depender de un servidor apache, en mi caso dependía de lampp, configure php.ini, instale recursos javabridge de todas las formas y métodos, y solo encontré problemas, al final de la noche me decidí y empece a usar quercus para ver como desde allí podía llamar los reportes, ya que al estar dentro de un contenedor de aplicaciones java me permitiría ir directamente a los recursos de java y así fue.

el mecanismo para realizar este procedimiento es sencillo.
  • PHP: los recursos normales instalados en el servidor físico o maquina de trabajo linux
  • Quercus: recurso para ejecutar una aplicación php dentro de un servidor de aplicaciones java
    • Descarga: descargar de http://quercus.caucho.com/Quercus_x.x.x.war
    • Instalación: 
      • desplegar el Quercus_x.x.x.war desde la consola de administración de glassfish.
    • Librerías: Copiar las librerías necesarias dentro del web-inf del proyecto quercus desplegado, todas las usadas en jasperreport para exportar el pdf, para conexión el driver conector postgres, y alticJasper.jar parar realizar la conexión desde php al conector y el jasperreport.
  • Glassfish: servidor de aplicaciones web J2EE, JSE, etc.
  • Jasperreport: tecnología para realizar reportes java enlazados a bases de datos 

Código php usado para llamar el reporte .jasper, adaptado de la red.



//directorio de los reportes
$dir = "/home/iproject/glassfish-3.1.2.2/glassfish/domains/domain1/applications
/quercus-4.0.37/EAOptimaERP_v1.2_Contabilidad/reportes";
//Especificamos el nombre del reporte
$informe = "/reporte";

    try {


//Creamos la conexión JDBC
        $Conn = new Java("org.altic.jasperReports.JdbcConnection");

//Seteamos el driver mysql
        $Conn->setDriver("org.postgresql.Driver");

//Especificamos los datos de la conexión
        $Conn->setConnectString("jdbc:postgresql://localhost:5432/
optimaerp_db");
        $Conn->setUser("postgres");
        $Conn->setPassword("");

// Creamos una variable tipo arreglo que contendrá los parámetros 
        $parametrosMap = new Java("java.util.HashMap");
        $parametrosMap->put("usuario", new Java('java.lang.String','YovanySuarez'));

//Creamos el objeto JasperReport que permite obtener el reporte
        $sJfm = new Java("net.sf.jasperreports.engine.JasperFillManager");

//Guardamos el reporte en una variable $print para luego exportarla
        $print = $sJfm->fillReportToFile($dir . $informe . ".jasper", 
$parametrosMap, $Conn->getConnection());

//pdf en el directorio donde están los reportes
        $sJem = new Java("net.sf.jasperreports.engine.JasperExportManager");
        $sJem->exportReportToPdfFile($print, $dir . $informe . ".pdf");

//abre el archivo generado desde el explorador
        if (file_exists($dir . $informe . ".pdf")) {
            header("Content-disposition: attachment;filename=" . $informe . ".pdf");
            header("Content-Type: application/pdf");
            header("Content-Transfer-Encoding: binary");
            header("Content-Length: " . @filesize($dir . $informe . ".pdf"));
            header("Pragma: no-cache");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Expires: 0");
            set_time_limit(0);
            @readfile($dir . $informe . ".pdf") or die("error.");
        }
    } catch (JavaException $ex) {
        echo "error ";
        $trace = new Java("java.io.ByteArrayOutputStream");
        $ex->printStackTrace(new Java("java.io.PrintStream", $trace));
        print "java stack trace: $trace\n";
    }

miércoles, 3 de abril de 2013

Montar carpeta Windows para acceder desde linux SUSE 12.3 con Java

En ocasiones se hace necesario que nuestras aplicaciones java web acedan desde el servidor a una carpeta de un sistema operativo windows, bien sea porque necesitamos acceder a bases de datos access o a archivos de imágenes, documentos, etc.

Es allí cuando se necesitan realizar puntos de montaje del directorio al que queremos acceder. he aquí en la imagen una forma de realizarlo a través de consola en linux suse 12.3

Se crea un directorio en /mnt/ con permisos de root, para montar la carpeta windows.
iproject@maya:/mnt# mkdir winsamba



 y en esta imagen una forma de hacerlo mediante shell linux a través de java.




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, 2 de mayo de 2009

RESIN - Servidor de Aplicaciones Web



Servidor de Aplicaciones WEB Resin (Caucho).
Sistemas Operativos Linux - Windows

Resin es el nuevo servidor de aplicaciones web que me permite ejecutar y ver cambios en tiempos muy cortos, este servidor se ejecuta desde su directorio raíz, no necesita ningún componente instalado en el sistema , es autónomo, eso si obviamente, las jdk, controladores de bases de datos y otros recursos necesarios como la maquina virtual java. Sí necesitamos en determinado momento llevar nuestro servidor con las características configuradas por nosotros, lo podemos hacer muy fácilmente en una usb, un cd y luego montarlo en cualquier destino y sobre cualquier S.O.

Cuando trabajamos sobre un servidor de aplicaciones Tomcat, se suben los archivos a su carpeta base donde se encuentra la aplicación web y se debe esperar que el servidor ,en determinado tiempo programado, o con ejecución manual para realizar el proceso de compilación encuentre los archivos, vea cuales son lo que contiene cambios de fechas y tamaño y realiza la lectura nueva de los archivos. Esta demora perjudica el avance del desarrollo de aplicaciones web. En algunos casos es necesario ver el funcionamiento de los cambios en linea para no obviar detalles de algunas fallas o evitar excepciones y se hace muy engorroso tener que esperar para poder ver los cambios realizados en la aplicación, con Resin esta utilidad es puesta en marcha y satisface la necesidad, Resin realiza un nueva lectura de los archivos cada vez que nota cambios en los archivos base, es decir cada vez que un archivo nuevo es subido al servidor de aplicaciones este inmediatamente atiende el cambio y realiza la ejecución de estos archivos, trayendo al instante la vista de los nuevos cambios realizados, como servidor de prueba para desarrollos web, Resin presenta gran beneficio al tiempo de ver Cambios.

Características del Servidor RESIN
  • Compilación y recompilación automática
  • Se puede utilizar como un servidor completamente autónomo, independiente, obteniendo un mejor rendimiento.
  • El trafico de datos para el email es el adecuado.
  • Resin permite especificar el autenticador para su aplicación web
    en web.xml.
  • Una de sus versiones permite tener soporte personal como apoyo al servicio. La cuenta de licencia de pago es a un costo muy económica.
  • Su estructura interna de directorios y archivos es ordenada.

CONTEXTO
Resin es una aplicación servidor web de alto rendimiento y de código abierto desarrollado por la compañía caucho tecnología, esta escrito en lenguaje java, sus extensiones de archivos son .jsp, esto lo hace ser mas accesible a modificaciones por parte de desarrolladores JAVA.
Una de las necesidades básicas en el desarrollo de aplicaciones web es poder llevar a cabo actualizaciones criticas en linea de la manera mas rápida y eficiente. En los servidores Resin esta tecnología es puesta en marcha.
  1. Donde Encontrar RESIN
Resin se puede descargar directamente desde su sitio web www.caucho.com allí se encuentra mucha información sobre el proyecto y las versiones que existen actualmente. Al Igual existe documentación sobre como gestionar un buen servicio con RESIN, existen versiones de paga a muy bajo costo que beneficia a empresas inclinadas al desarrollo de aplicaciones web.
  1. Como Instalarlo.
Resin se instala en cualquier sistema operativo, es cuestión de descargar la versión que se ajuste al S.O. de la maquina en la web oficial del resin http://www.caucho.com
      1. En Linux.
- Para instalar RESIN en Linux basta con llevar el directorio completo del resin y pegarlo en alguna parte del sistema.
cp /Escritorio/resin/ /usr/local/share/resin/ -R -v
- Luego se ejecuta, es decir se arranca el demonio con el siguiente comando.
sudo java -jar resin/lib/resin.jar
Este comando invoca un .jar principal que contiene los archivos de arranque del servidor y ya esta.
      1. En Windows.
- La versión para windows de Resin es un poco mas fácil de instalar, de igual manera que en Linux, se debe ubicar la carpeta del Resin en un lugar seguro del sistema.
- En la carpeta raiz se encuentra un archivo ejecutable llamado httpd.exe, se ejecuta y listo ya esta el servidor instalado y en servicio.
!Que fácil.