Java

Archive for the ‘ Java ’ Category

Tutorial: Instalar Maven 3 en Ubuntu

Maven es una poderosa herramienta para gestionar proyectos en Java, parecido en su propósito a Ant aunque difiere en su implentación, normalmente es usado con Java, pero puede ser usado para otros lenguajes como Scala, Ruby, etc.

Este post lo escribo para los despistados en Ubuntu, anteriormente Maven venía en los repositorios y era fácil su instalación, hasta donde sé con la versión 12 en adelante es necesario agregarlo a mano, por lo que repasemos los siguientes escenarios:

Escenario 1:

En el mejor de los casos tu versión de Ubuntu viene con Maven en el repositorio, para averiguarlo ejecuta la instalación siguiendo estos pasos:

apt-cache search maven

Primero buscamos en el repositorio los paquetes necesarios y después intentamos instalar:

sudo apt-get install maven

Escenario 2:

Si al intentar el primer escenario no pudiste instalarlo entonces tendremos que hacerlo de manera manual, empezando con el siguiente comando:

sudo -H gedit /etc/apt/sources.list

El comando abrirá en modo de edición la lista de recursos al cual debemos agregar las siguientes líneas:

## Adding Maven3 to Ubuntu
deb http://ppa.launchpad.net/natecarlson/maven3/ubuntu precise main
deb-src http://ppa.launchpad.net/natecarlson/maven3/ubuntu precise main

Guarda y cierra el archivo, luego ejecuta este comando:

sudo apt-get update && sudo apt-get install maven3

No debería haber ningún problema, la instalación debe ser rápida, por último hagamos un enlace para tener Maven listo:

sudo ln -s /usr/share/maven3/bin/mvn /usr/bin/mvn

Eso debe ser suficiente; puedes verificar la versión ejecutando lo siguiente:

mvn -version

Recuerda tener siempre un tiempo para leer la documentación oficial en Apache Maven.

 

 

Tutorial: Crear una aplicación Web con Scala / Lift desde cero

Continuando con los post del Web Server Lift con Scala, hoy mostraré cómo crear una aplicación Web desde cero y que podremos usar más adelante como un template en blanco para nuestros proyectos. Es necesario haber realizado el tutorial anterior para poder continuar.

Para empezar debemos crear una carpeta para nuestro proyecto, para efectos prácticos la llamaré “webapp” y dentro otra carpeta llamada “project“. Nuestro primer paso consiste en configurar el SBT (Simple Build Tool), esto se lograr creando el archivo plugins.sbt dentro de la carpeta de nuestro proyecto con el siguiente fragmento de código:

libraryDependencies <+= sbtVersion(v => v match {
  case "0.11.0" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.0-0.2.8"
  case "0.11.1" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.1-0.2.10"
  case "0.11.2" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.2-0.2.11"
  case "0.11.3" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.3-0.2.11.1"
  case x if (x.startsWith("0.12")) =>
    "com.github.siasia" %% "xsbt-web-plugin" % "0.12.0-0.2.11.1"
})

El código anterior se encarga de cargar el xsbt-web-plugin acorde a la versión que definas para Scala, para definir esto crea el archivo build.sbt, como he mencionado antes, este archivo carga todas las librerías necesarias, debe estar en raíz y contendrá lo siguiente:

organization := "org.webapp"

name := "My Wep App"

version := "0.1"

scalaVersion := "2.10.0"

seq(com.github.siasia.WebPlugin.webSettings :_*)

libraryDependencies ++= {
  val liftVersion = "2.5-M4"
  Seq(
    "net.liftweb" %% "lift-webkit" % liftVersion % "compile",
    "org.eclipse.jetty" % "jetty-webapp" % "8.1.7.v20120910" % "container,test"
  )
}

Algunos de los parámetros son autodescriptivos, los demás son propios de Scala como el manejo de colecciones “Seq“. Con esto tenemos configurada parte de la aplicación, para poder compilarlo ocupamos los archivos “sbt” y “sbt-launch-0.12.1.jar” (puede variar la versión) que encontrarás en la raíz del proyecto del tutorial pasado, copiamos dichos archivos a la raíz de nuestro proyecto y ejecutamos el siguiente comando:

./sbt

El comando anterior descargará todos los archivos necesarios para la versión de Scala que hayamos selecionado, al terminar entrarán automáticamente en el prompt, recuerda que aunque siempre ejecutes el comando, sólo descargará una vez los documentos. Desde la raíz de tu proyecto encontrarás una nueva carpeta, estas son las dependencias que se necesitan para ejecutar el lenguaje.

Ya casi tenemos listo nuestro ejemplo, nos falta definir nuestro contenedor para que recoja las peticiones usando Lift, básicamente el siguiente documento xml debe ser creado desde raíz en la siguiente ubicación: src/main/webapp/WEB-INF/web.xml y su contenido debe ser el siguiente:

<!DOCTYPE web-app SYSTEM "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <filter>
    <filter-name>LiftFilter</filter-name>
    <display-name>Lift Filter</display-name>
    <description>The Filter that intercepts Lift calls</description>
    <filter-class>net.liftweb.http.LiftFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>LiftFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

Nuestro siguiente documento define nuestra pantalla inicial y debe estar localizado en la siguiente dirección: src/main/webapp/index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Welcome to Scala/Lift</title>
  </head>
  <body>
    <h1>Welcome to your Web Server</h1>
  </body>
</html>

Los Web Server con contenedores en Java funcionan gestionando las peticiones, en el caso de Lift debemos crear un documento que se encargará de esto, debe estar localizado en la siguiente dirección: src/main/scala/boot/strap/Boot.scala

package bootstrap.liftweb

import net.liftweb.http.{Html5Properties, LiftRules, Req}
import net.liftweb.sitemap.{Menu, SiteMap}

/**
 * A class that's instantiated early and run.  It allows the application
 * to modify lift's environment
 */
class Boot {
  def boot {
    // where to search snippet
    LiftRules.addToPackages("org.webapp")

    // Build SiteMap
    def sitemap(): SiteMap = SiteMap(
      Menu.i("Home") / "index"
    )

    // Use HTML5 for rendering
    LiftRules.htmlProperties.default.set((r: Req) =>
      new Html5Properties(r.userAgent))
  }
}

Usando Scala como lenguaje base, nuestro archivo boot se encargará de direccionar nuestras peticiones. Ya tenemos todo listo, desde la raíz de nuestro proyecto ejecutar los dos comandos:

./sbt
container:start

Ahora ya podrás acceder a tu proyecto desde http://localhost:8080/index, ten encuenta que los documentos en Scala deben ser compilados, a diferencia de los html que puedes modificar sin necesidad de levantar el servicio de nuevo.

Fuente:  Lift Web

Tutorial: Instalar Lift Web Server – Linux

Web Server Lift

Web Server Lift

De vuelta al blog he decidido dedicar el siguiente post al Web Server para Scala, Lift. Llevo un tiempo que he dejado de usar Windows, por lo que normalmente verán tutoriales realizados en Linux.

El siguiente tutorial está dirigido enteramente en instalar Lift y ejecutarlo desde un ambiente Linux, quizá más adelante escriba algo más avanzado para los que quieran aprender más de Lift y en general de Scala.

Pré-requesitos:

Scala es un lenguaje escrito sobre Java, por lo que es necesario tener instalada una versión mayor o igual a Java 1.5.

1.- Descarguemos la última versión de Lift: descargar, para este tutorial se usó Lift con Scala versión 2.9

2.- Desde la terminal navegar hasta el directorio donde descargaron y descomprimieron el archivo:

/lift-lift_25_sbt-b9779cc/scala_29/lift_basic.

3.- Desde la terminal ejecutamos el siguiente comando sobre el directorio mencionado, este descargará todos los paquetes necesarios para ejecutar el servidor:

./sbt

        Este comando también nos servirá para entrar a comandos del servidor y ejecutar el contenedor de Scala para este servidor.

4.- Una vez instalado todo, ejecuten el siguiente comando para levantar el servicio:

container:start

5.- Desde el navegador Web entra a la dirección local: http:localhost:8080

Si todo ha salido correctamente, veremos ejecutar una aplicación web. Normalmente aparece un login; atención, Lift no es un servidor como comunmente encontraríamos al instalar Tomcat, Weblogic, etc. Lo que acabamos de ejecutar es un template base para una aplicación en Scala, el login que aparece en pantalla es sólo una muestra. Entonces, el comando sbt (Simple Build Tool) es propio de Scala, este descargará cualquier dependencia de librería que se necesite, para entender un poco más la descripción de la compilación del proyecto la podrán encontrar en el archivo build.sbt.

Por otra parte el comando que ejecutamos container:start sólo inicia la aplicación, recordemos que en los ambientes con Java, los servidores son contenedores, para este caso es Jetty.

Eso es todo por el momento, si quieren empezar, la carpeta src les dará una visión amplia de cómo está construído el servidor, me encantaría indagar un poco más en post futuros acerca del lenguaje funcional Scala, pero eso, es tema aparte.

Fuente: Lift

Java – “Bad version number in .class file”

Recibí algunos comentarios de manera personal sobre algunos errores siguiendo el tutorial pasado de instalación del SDK de Android:

El error es: Bad version number in .class file

Este error es causado por la incompatiblidad de las versiones que se necesitan para ejecutar el ADT y el JRE instalado, en otras palabras estamos tratando de ejecutar erróneamente la versión ADT  con una versión inferior de Java, como la 1.5. El error aplica igual cuando ejecutamos una aplicación después de actualizar el JRE.

Para solucionarlo basta con hacer lo siguiente:

  1. Hay que asegurarnos qué versión tenemos y cuál necesitamos, en la ventana de comandos escribe lo siguiente:
    • C:\>java -version
      java version "1.7.0_03"
      Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
      Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)
    • Te mostrará la versión que se está ejecutándose en tu máquina, el ADT versión 18 necesita Java 1.6 o mayor. Si no logras ver nada es que el PATH no está configurado,
  2. Al actualizar o instalar  debes asegurarte el JAVA_HOME y el PATH estén direccionando a la versión adecuada de Java. Para ello modifica las variables de entorno, se encuentra en Propiedades del Sistema, y varía la ubicación dependiendo de la versión de Windows que tengas:
    • JAVA_HOME:  C:\Program Files (x86)\Java\jdk1.7.0_03
    • PATH: C:\Program Files (x86)\Java\jdk1.7.0_03\bin
    • Asegura apunten a las ubicaciones dependiendo tu sistema y versión que necesites. Después de eso ejecuta de nuevo el comando para ver si la versión se cambió, en algunos casos quizás ocupes reiniciar el ordenador.
  3. Ya tienes lo necesario, ahora debemos cambiar cómo se ejecuta y compila Eclipse, si tuvieras un error al iniciarlo revisa que hayas descargado la versión adecuada a tu arquitectura, sea 32 o 64 bits. Para selecionar el JRE necesario, desde Eclipse ubica el menú superior Windows -> Preferences. En el menú lateral izquierdo ubica la opción Java, dentro ocupamos dos: Compiler y Installed JREs:
    • Compiler: Seleciona el Compiler compliance level apropiado, en mi caso: 1.7
    • Installed JREs: Selecciona la versión del JDK o JRE adecuado, si no estuviera sigue los siguientes pasos:
      • Add -> Standar VM -> Directory, desde la ventana de archivos selecciona el directorio adecuado.

Con eso ahora ya podrás instalar lo necesario en el SDK Manager, de igual manera si llegaste a este tutorial por el error, sólo compila de nuevo tu proyecto para que todo funcione.

 

Tutorial: Instalación del Android SDK

Android SDK

Ahora toca el turno al SDK de Android, en este tutorial veremos toda la instalación para poder desarrollador aplicaciones en Android; válido para Windows y Linux.

1.- Primero que nada necesitamos una versión de Eclipse (IDE que recomienda Google), que puedes descargarla desde aquí (La básica es suficiente). Aunque en realidad no hay ningún problema si tienes ya uno instalado, para el caso de Linux recomiendo ampliamente no trabajar con las versiones del repositorio, que algunas veces vienen capadas o causan muchos problemas con los permisos.

2.- Segundo, necesitas la versión SDK compatible con tu Sistema Operativo que puedes descargar desde el siguiente enlace. He trabajado tanto en Linux como Windows sin problemas hasta ahora. Por default la instalación se realiza usando esta sintaxis android-sdk-<machine-platform>. En Linux puedes ubicarlo manualmente en el directorio que gustes, para Windows, realizará una instalación automática en C:\Program Files\Android.

3.- Después tenemos que instalar el plugin para trabajar con Eclipse, Google lo llama el Android Development Tools (ADT), que puedes descargar desde aquí. Servirá como enlace entre el IDE y el SDK.  Sin embargo para su instalación he tenido algunos problemas siguiendo los pasos oficiales desde el repositorio, por lo que es mejor descargarlo y hacerlo manual de la siguiente manera: 

  • Coloca el archivo descargado en el directorio que te plazca.
  • Abre Eclipse y en el menú superior en Help encontrarás un submenú llamado Install New Software.
  • Selecciona la ubicación del archivo en formato .zip, puedes agregarle un nombre como muestra la imagen.
  • Agregado esto podrás seleccionar el Developer Tools y empezar la instalación (Si te aparece un Warning selecciona Ok).

4.- Para poder enlazar el ADT desde el Eclipse selecciona en el Menú superior Window > Preferences. Busca Android en el panel izquierdo ( si te aparece un error de Bad version number in .class file es porque la versión de Java o el IDE que posees es menor a la necesaria, sólo actualízalo ). Aquí debes localizar el directorio donde descargaste el SDK.

5.- El siguiente paso lo realiza Windows por default la primera vez pero no de manera completa, para instalar el resto de los componentes tanto en Windows como Linux es necesario hacerlo como se muestra a continuación. En el menú superior localiza Window > Android SDK Manager, aquí selecciona todos los componentes y versiones que desees, cabe resaltar que quizá algunas dependecias te impidan instalar algo, es sólo ir viendo los detalles para tener la instalación completa.

SDK Manager

Y eso es todo, ¿Sencillo, no? En el siguiente tutorial mostraré como gestionar un dispositivo Virtual y cómo trabajar desde uno físico para poder ejecutar tu primer aplicación. ¡Estar atentos!

Configurando Apache Tomcat en Eclipse

Eclipse LogoEn un post pasado les explicaba los pasos para instalar Apache Tomcat usando Netbeans, ahora le toca el turno a Eclipse, otro de los grandes IDE para programar con Java, la gran ventaja sobre Netbeans es que te permite configurarlo expresamente a tus necesidades, por ejemplo, yo uso una versión para trabajar en Android y otra para JEE, que en la misma pero con una serie de plugins especiales para el propósito.

Les aconsejo leer la primera parte del post anterior para saber dónde bajar Apache Tomcat.

¿Qué versión descargar para trabajar en Eclipse con JEE?

Es la primera gran pregunta que nos hacemos cuando empezamos, desde este enlace podrán ver las versiones disponibles, para nuestro caso descargen “Eclipse IDE for Java EE Developers“, obtendrán una carpeta con todo lo necesario, a diferencia de Netbeans, este es un ejecutable standalone.

Una vez situado en la carpeta que gusten, toca el turno a Sysdeo Tomcat Launcher, un plugin para gestionar Tomcat sin salirse de Eclipse, lo podrán descargar desde aquí. El contenido del .zip debe ir dentro de la carpeta plugins localizada en el directorio raíz de Eclipse.

Tomcat icons run-stop-startAhora abrimos el ejecutable de Eclipse y notarán que aparece el logo de Tomcat para iniciar el servidor, si en dado caso no apareciera tendrás que ejecutarlo de manera manual, desde el menu contextual “Windows -> Preferences –>” y agregar tal cual lo muestra la imagen, y por último la opción “Server – Runtime Enviroment

Configuración Tomcat Eclipse

JEE SDK

Es muy importante que sigan estos pasos, de otra forma el servidor podría no funcionar, si les ocurriese un error, asegúrense que en el apartado Java, dentro de preferencias, en la opción “Installed JREs” se encuentre seleccionado un JDK,y no JRE (El JDK es usado por Tomcat).

Si todo ha salido bien podrán iniciar el servidor desde el logo de Tomcat. Es tiempo de hacer una prueba, iniciemos un nuevo proyecto “File -> New -> Dynamic Web Project”, escriban un nombre cualquiera al proyecto, esto les creará las carpetas necesarias, basta con agregar un archivo y contenido como ilustra la siguiente imagen:

Hello World

La etiqueta out.println envía a pantalla el mensaje “Hello World”, no confundir con System.out.println(“hi”), este último enviaría a la salida por consola.

<body>
	<% out.println("Hello World!"); %>
</body>

No te apresures si ahorita no entiendes mucho del código, en posteriores artículos iré explicando detalladamente JSP y Java Server Faces junto con Servlets

Configuración de Apache Tomcat

Logo Apache TomcatDespués de un largo tiempo de inactividad en esta área, regreso para meterme de lleno en el universo Java, este primer post tratará de la instalación básica de Apache Tomcat. Para los que inician, Apache Tomcat es una implementación Open source para trabajar con la tecnología de Servlets y Java Server Pages.

Para empezar con la instalación les recomiendo descargarse la versión no “instalable”, puesto que lo necesitaremos más de esta forma para un ambiente de desarrollo, sobre todo porque están los archivos catalina.bat y catalina.sh, los cuales son usados por Netbeans, IDE que estaremos trabajando para los siguientes ejemplos, aunque posiblemente cuando hablemos de WebLogic usemos JDeveloper de Oracle.

Al momento de este tutorial la versión de Apache Tomcat es la 7, desde el enlace busquen el archivo descomprimible, puede estar en .zip o .tar.gz, depende su sistema operativo, este lo estoy realizado bajo Windows 7. El contenido del archivo debe ser parecido al de la imagen. Lista de archivos dentro de Apache Tomcat

Sólo deben crear una carpeta apache-tomcat (o como gusten) en raíz, aunque de preferencia dentro del directorio “Archivos de programa“, esta será la ruta a la que accederá el Netbeans. Para familiarizarnos un poco con el contenido describimos los principales directorios:

  • /bin – contiene los elementos necesarios para el arranque o cierre del servidor, así como otras utilerías.
  • /temp – principalmente gestionado por el servidor para menajar archivos temporales.
  • /conf – Deste esta ubicación se configuran algunos parámetros principales.
  • /logs – historial de registros del servidor.
  • /webapps – directorio que contiene las aplicaciones web a desarrollar.
  • /work – almacén temporal de ficheros y directorios.

Para iniciar el servidor basta con ejecutar el archivo startup.bat y shutdown.bat para detenerlo, ubicados en el directorio /bin, pero antes iremos a configurar el acceso. Ubiquemos el archivo /conf/tomcat-users.xml, les recomiendo usar algún editor avanzado de texto, como Notepad++ y agreguen lo siguiente entre las etiquetas <tomcat-users>…</tomcat-users>:

<user username="admin" password="admin" roles="admin,manager"/>

Los parámetros serán usados para iniciar el servicio. Por último para hacer una prueba antes de meternos con Netbeans será definir la variable JAVA_HOME, es importante definirla para que Apache Tomcat conozca el directorio donde se encuentra ubicada la versión de Java instalada. En mi caso queda como la imagen. Apache Tomcat - Variable de SistemaEn el mismo proceso agrequen otra variable, CATALINA_HOME, con dirección al directorio donde se encuentra ubicado apache-tomcat. Estamos listos para hacer una pequeña prueba, ejecuten el archivo startup.bat como muestra la imagen. Inicio de Apache Tomcat

Para saber que todo está en orden, escriban la dirección http://localhost:8080/ en su navegador donde podrán ver la pantalla de inicio de Tomcat. Tenemos lista la primera parte, ahora nos toca configurar el Netbeans.

Localicemos el Menú Tools-Services, y en el apartado de Server agregar la referencia hacia Tomcat (Si no les mostrara la opción de Server es porque la versión de Netbeans no es JEE, para solucionarlo basta con descargar algún plugin de manejo de Java Web EE). Sólo deben agregar los datos provistos en el archivo tomcat-user.xml al mismo tiempo que la dirección a la carpeta de tomcat.

Con esto tendremos listo el Netbeans, si desean una prueba sencilla agreguen un nuevo proyecto de tipo “Web Application” dejando todas las opciones como están, les creará todos los directoios y archivos necesario, basta con ejecutar la aplicación y ver el resultado en el navegador. “Hello World!