java google

Upload: esteban-francisco-chacon-mosquera

Post on 09-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Java Google

    1/8

    Instalacin del SDK de JavaDesarrolla y sube aplicaciones Java de Google App Engine con el kit de desarrollo de software(SDK) de Java de App Engine.El SDK incluye software para un servidor web que puedes ejecutar en tu propio equipo para probar las aplicaciones Java. El servidor simula todos los servicios de App Engine, incluida una versin

    local del almacn de datos, el servicio Cuentas de Google y la capacidad de extraer URL y enviar mensajes de correo electrnico desde tu equipo a travs de las API de App Engine.

    Obtencin de JavaGoogle App Engine es compatible con Java 5 y Java 6. Cuando la aplicacin Java se ejecuta en AppEngine, lo hace a travs de la mquina virtual (JVM) 6 y de las bibliotecas estndar. Seraconveniente que utilizaras Java 6 para compilar y probar la aplicacin, y asegurarte de que el servidor local se comporte de forma similar a App Engine.Para los desarrolladores que no puedan acceder fcilmente a Java 6 (como, por ejemplo, los queutilizan Mac OS X), el SDK de App Engine es compatible con Java 5. Puedes subir a App Engine

    clases compiladas y JAR creados con Java.Si es necesario, descarga e instala el kit de desarrollo de Java SE (JDK) para tu plataforma. Losusuarios de Mac pueden consultar el sitio de desarrolladores Java de Apple, donde puedendescargar e instalar la ltima versin del kit de desarrollo de Java disponible para Mac OS X.Una vez instalado el JDK, ejecuta los siguientes comandos desde una lnea de comandos (enWindows, Smbolo del sistema; en Mac OS X, Terminal) para comprobar que se pueden ejecutar y para determinar la versin que est instalada. Si tienes instalado Java 6, estos comandos mostrarnun nmero de versin similar a1.6.0 . Si tienes instalado Java 5, el nmero de versin ser similar a1.5.0 .

    java -version

    javac -version

    Uso de Eclipse y del complemento de Google para EclipseSi utilizasel entorno de desarrollo de Eclipse, la forma ms fcil de desarrollar, probar y subir aplicaciones App Engine es utilizar el complemento de Google para Eclipse. El complemento incluyetodo lo necesario para crear, probar e implementar la aplicacin por completo en Eclipse.El complemento est disponible para las versiones 3.3 y 3.4 de Eclipse. Puedes instalarlo con lafuncin "Software Update" de Eclipse. Las ubicaciones para la instalacin son las siguientes:

    y Complemento de Google para la versin 3.3 de Eclipse (Europa):

    http://dl .goog l e.com / ec l i p se /plu gin /3 . 3

    y Complemento de Google para la versin 3.4 de Eclipse (Ganymede):

  • 8/8/2019 Java Google

    2/8

    http://dl .goog l e.com / ec l i p se /plu gin /3 .4

    Si quieres obtener informacin detallada sobre cmo utilizar la funcin "Software Update" parainstalar el complemento y sobre cmo crear un proyecto nuevo, consultaUso del complemento de

    Google para Eclipse.

    Obtencin del SDK Si utilizas Eclipse y el complemento de Google, puedes instalar el SDK de App Engine desde Eclipsemediante la funcin "Software Update". Si an no lo tienes, instala el componente SDK de Java deGoogle App Engine utilizando las ubicaciones anteriores.Si no utilizas ni Eclipse ni el complemento de Google, puedes descargar el SDK de Java de AppEngine como un archivo ZIP.Descarga el SDK de Java de App Engine. Descomprime el archivo en una ubicacin adecuada de tu disco duro.

    Nota: al descomprimir el archivo, se crear un directorio, cuyo nombre es similar aa pp engine-java-s dk -X.X.X , en el queX.X.X es el nmero de versin del SDK. En este documento, nosreferiremos a este directorio comoa pp engine-java-s dk/ . Una vez descomprimido el archivo, puedes renombrar el directorio.

    Prueba de una aplicacin de demostracinEl SDK de Java de App Engine incluye varias aplicaciones de demostracin en el directoriod emos / .La versin final de la aplicacin de libro de invitados, que crears con este tutorial, est incluida en el directoriog u es tb oo k/ . Esta demostracin se ha compilado previamente para que puedas utilizarla

    de inmediato.Si utilizas Eclipse, el SDK se ubica en el directorio de instalacin de Eclipse,enplu gins / com.goog l e.a pp engine.ec l i p se.s dkbu n dl e_ VERSION / , en el que VERSION es un identificador de versin del SDK. Desde la lnea de comandos, cambia el directorio de trabajo actual por este directorio para ejecutar el comando siguiente. Si utilizas Mac OS X o Linux, puede que tengas que asignar a los archivos de comandos permisos de ejecucin para poder ejecutarlos (como ocurre con el comandoc h mod u+x d ev_a pp server.s h ).Si utilizas Windows, inicia la demostracin de libro de invitados en el servidor de desarrollo mediantela ejecucin del siguiente comando en el smbolo del sistema:

    a pp engine-java-s dk\b in \d ev_a pp server.cm d a pp engine-java-s dk\d emos \ g u es tb oo k\w ar

    Si utilizas Mac OS X o Linux, ejecuta el siguiente comando:

    . / a pp engine-java-s dk/b in /d ev_a pp server.s h a pp engine-java-s dk/d emos / g u es tb oo k/w ar

    El servidor de desarrollo se inicia y detecta las solicitudes en el puerto 8080. Accede a la siguienteURL a travs de tu navegador:

  • 8/8/2019 Java Google

    3/8

    y http://localhost:8080/ Para obtener ms informacin sobre la ejecucin del servidor web de desarrollo desde la lnea decomandos, incluida la forma de cambiar el nmero de puerto que utiliza, consultala referencia del servidor web de desarrollo.Para detener el servidor, asegrate de que la ventana de smbolo del sistema est activa y, a

    continuacin, pulsa Control-C.

    Creacin de un proyectoLas aplicaciones Java de App Engine utilizan el estndar Java Servlet para interactuar con el entorno del servidor web. Algunos archivos de la aplicacin, que incluyen clases compiladas, JAR,archivos estticos y archivos de configuracin, estn organizados en una estructura de directorio queutiliza el formato estndar WARpara aplicaciones web Java. Puedes utilizar el proceso de desarrolloque desees para desarrollar servlets web y para generar un directorio WAR. (Los archivos del

    archivo WAR no son compatibles con el SDK).

    Directorio del proyectoPara este tutorial, utilizars un nico directorio denominadoG u es tb oo k/ para todos los archivos del proyecto. Un subdirectorio llamadosrc / contiene el cdigo fuente Java y otro subdirectoriollamadowar / contiene la aplicacin completa organizada en formato WAR. El proceso decompilacin compila los archivos fuente Java y coloca las clases compiladas en la ubicacinapropiada en war / .El directorio completo del proyecto es similar a:

    G u es tb oo k/

    src /

    ...Java source code...

    META-INF /

    ...other configuration...

    war /

    ...J SP s, images, data files...

    WEB-INF /

    ...app configuration...

    l i b/

    ...JA R s for libraries...

    c l asses /

  • 8/8/2019 Java Google

    4/8

    ...compiled classes...

    Si utilizas Eclipse, crea un nuevo proyecto haciendo clic en el botn "New Web Application Project" de la barra de herramientas: Asigna al proyecto un nombre (Project name) deG u es tb oo k y un paquete (Package) de g u es tb oo k . Desactiva la casilla "Use Google Web Toolkit" y asegrate deque la casilla "Use Google App Engine" est activada. Para obtener ms informacin, consultaUsodel complemento de Google para Eclipse. El asistente crear la estructura de directorio y losarchivos descritos a continuacin.Si no utilizas Eclipse, crea la estructura de directorio descrita a continuacin. Mientras lees losarchivos descritos en esta seccin, crea los archivos con los nombres y ubicaciones especificados.Tambin puedes copiar la nueva plantilla del proyecto, que se incluye en el SDK, en el directorioa pp engine-java-s dk/d emos / ne w_ p rojec t _ t empl a t e / .

    La clase Servlet Las aplicaciones Java de App Engine utilizan el API Java Servlet para interactuar con el servidor web. Un servlet HTTP es una clase de aplicacin que puede procesar y responder solicitudes web.Esta clase ampla la clase javax.servlet.GenericServlet o a la clase javax.servlet.http.HttpServlet .El proyecto del libro de invitados comienza con una clase Servlet simple que muestra un mensaje.Si no utilizas el complemento de Eclipse, crea los directorios para la rutasrc / g u es tb oo k/ y, acontinuacin, crea el archivo de clase Servlet descrito a continuacin.El directoriosrc / g u es tb oo k/ incluye un archivo denominadoG u es tb oo kS erv l e t .java quecontiene lo siguiente:

    p ac k age g u es tb oo k ;

    im p or t java . io . IOE x ce pt ion ; im p or t java x . serv l e t . http .* ;

    publ ic c l ass G u es tb oo kS erv l e t e xt en d s HttpS erv l e t { publ ic voi d d o G e t ( HttpS erv l e tR eq u es t req , HttpS erv l e tR es p onse res p )

    th ro ws IOE x ce pt ion { res p . se tC on t en t Ty p e ( "t e xt/pl ain " ); res p . ge t Wri t er () . p rin tl n ( " He ll o, wor ld" );

    } }

    El archivo web.xml

    Cuando el servidor web recibe una solicitud, decide qu clase de servlet ejecutar mediante unarchivo de configuracin conocido como "descriptor de implementacin de la aplicacin web". Estearchivo se denominawe b . x ml y se ubica en el directoriowar / WEB-INF / del WAR.WEB-INF / y we b . x ml forman parte de la especificacin del servlet.El directoriowar / WEB-INF / incluye un archivo denominadowe b . x ml que contiene lo siguiente:

  • 8/8/2019 Java Google

    5/8

    " - //Su n Microsys t ems, Inc. //D TD Web Appl ica t ion 2. 3// EN"

    "http:// java.s u n.com /dtd/w e b -a pp _2_ 3 . dtd">

    g u es tb oo k

    g u es tb oo k . G u es tb oo kS erv l e t

    g u es tb oo k

    / g u es tb oo k

    in d e x . ht ml

    Este archivowe b . x ml declara un servlet denominadog u es tb oo k y lo asigna a la ruta de laURL/ g u es tb oo k . Tambin indica que siempre que el usuario extraiga una ruta de la URL que nohaya sido asignada a un servlet y represente una ruta del directorio dentro del WAR de la aplicacin,el servidor deber buscar un archivo denominadoin d e x . ht ml en el directorio y mostrarlo si loencuentra.

    El archivo appengine-web.xml App Engine necesita un archivo de configuracin adicional para poder desarrollar y ejecutar laaplicacin. Este archivo se denominaa pp engine- we b . x ml y se ubica en WEB-INF / junto

    a we b . x ml . Incluye la ID registrada de la aplicacin (Eclipse la crea a partir de una ID vaca querellena el usuario), el nmero de versin de la aplicacin y listas de archivos que se deben tratar como archivos estticos (por ejemplo, imgenes y CSS) y archivos de recursos (por ejemplo, JSP y otros datos de aplicacin).El directoriowar / WEB-INF / incluye un archivo denominadoa pp engine- we b . x ml que contiene losiguiente:

  • 8/8/2019 Java Google

    6/8

    1

    a pp engine- we b . x ml es especfico de App Engine y no forma parte del estndar servlet. Puedesencontrar archivos de esquema XML que describen el formato de este archivo en el SDK, dentro del directorioa pp engine-java-s dk/d ocs / . Para obtener ms informacin sobre este archivo,consulta Configuracin de una aplicacin.

    Ejecucin del proyectoEl SDK de App Engine incluye una aplicacin de servidor web que puedes utilizar para probar tu aplicacin. El servidor simula los servicios y el entorno App Engine, que incluyen restricciones en la

    zona de pruebas, el almacn de datos y los servicios.Si utilizas Eclipse, puedes iniciar el servidor de desarrollo en el depurador de Eclipse. En el men "Run", selecciona "Debug As > Web Application". (Si no encuentras esta opcin de men,selecciona el men "Window > Reset Perspective...", haz clic en "OK" y, a continuacin, vuelve a probar el men "Run"). ConsultaUso del complemento de Google para Eclipse para obtener informacin detallada sobre la creacin de la configuracin de depuracin.Si no utilizas Eclipse, consultaUso de Apache Ant para una secuencia de comandos de generacinque puede crear el proyecto e iniciar el servidor de desarrollo. Para iniciar el servidor con estasecuencia de comandos de generacin, introduce el comandoan t r u nserver . Para detener el servidor, pulsa Control-C.

    Pruebas de la aplicacinInicia el servidor y, a continuacin, accede a la siguiente URL a travs de tu navegador:

    y http://localhost:8080/guestbook El servidor ejecuta el servlet y muestra el mensaje en el navegador.

    Uso del servicio de usuariosGoogle App Engine ofrece varios servicios tiles basados en la infraestructura de Google a los quese puede acceder a travs de aplicaciones utilizando una serie de bibliotecas incluidas en el kit dedesarrollo de software (SDK). Uno de ellos es el servicio de usuarios, que te permite integrar tu

    aplicacin con cuentas de usuarios de Google. Con el servicio de usuarios, los usuarios de tu aplicacin podrn utilizar sus cuentas de Google existentes para acceder a ella.Utilizaremos el servicio de usuarios para personalizar el saludo de esta aplicacin.

    Uso del servicio de usuariosEdita src / g u es tb oo k/ G u es tb oo kS erv l e t .java segn se indica para que se parezca a lo quese muestra a continuacin.

  • 8/8/2019 Java Google

    7/8

    p ac k age g u es tb oo k ;

    im p or t java . io . IOE x ce pt ion ; im p or t java x . serv l e t . http .* ; import com . google . appengine . api . users . User ; import com . google . appengine . api . users . UserService ;

    import com . google . appengine . api . users . UserServiceFactory ; publ ic c l ass G u es tb oo kS erv l e t e xt en d s HttpS erv l e t {

    publ ic voi d d o G e t ( HttpS erv l e tR eq u es t req , HttpS erv l e tR es p onse res p ) th ro ws IOE x ce pt ion {

    UserService userService = UserServiceFactory . getUserService (); User user = userService . getCurrentUser ();

    if ( user != null ) { resp . setContentType ( "text/plain" ); resp . getWriter (). println ( "Hello, " + user . getNickname ());

    } else { resp . sendRedirect ( userService . createLoginURL ( req . getRequestURI ()));

    } }

    }

    Si utilizas Eclipse y tu servidor de desarrollo se ejecuta en el depurador, al guardar los cambiosrealizados en el archivo, Eclipse compila el nuevo cdigo de forma automtica y, a continuacin,intenta insertarlo en el servidor en ejecucin. Los cambios realizados en las clases, JSP, archivosestticos y a pp engine- we b . x ml se reflejan de inmediato en el servidor en ejecucin sin necesidad de reiniciar. Si realizas cambios enwe b . x ml u otros archivos de configuracin, debes detener einiciar el servidor para ver los cambios.Si utilizas Ant, debes detener el servidor y volver a crear el proyecto para ver los cambios realizadosen el cdigo fuente. Los cambios realizados en las JPS y archivos estticos no requieren que sereinicie el servidor.

    Vuelve a crear tu proyecto y reinicia el servidor en caso necesario. Para probar la aplicacin, visita laURL del servlet en tu navegador:y http://localhost:8080/guestbook

    En lugar de mostrar el mensaje, el servidor te solicita una direccin de correo electrnico. Introduceuna direccin de correo electrnico (como, por ejemplo,a lf re d@e x ampl e.com y, a continuacin,haz clic en "Log In". La aplicacin muestra un mensaje que ahora contiene la direccin de correoelectrnico que has introducido.El nuevo cdigo de la claseG u es tb oo kS erv l e t utiliza el API de usuarios para comprobar si el usuario ha accedido con una cuenta de Google. Si no es as, se redirige al usuario a la pantalla deacceso a Cuentas de Google. u ser Service.crea t eLoginU RL( ... ) devuelve la URL de la pantalla de acceso. La funcin de acceso sabe redirigir al usuario a la aplicacin por la URL

    transferida acrea t eLoginU RL( ... ) , que en este caso es la URL de la pgina actual.El servidor de desarrollo sabe cmo simular una funcin de acceso a Cuentas de Google. Si seejecuta en tu equipo local, se redirige a la pgina en la que puedes introducir una direccin de correoelectrnico para simular un acceso a la cuenta. Si se ejecuta en App Engine, se redirige a la pantallareal de Cuentas de Google. Ahora has accedido a tu aplicacin de prueba. Si vuelves a cargar la pgina, el mensaje vuelve aaparecer.

  • 8/8/2019 Java Google

    8/8

    Para permitir el acceso al usuario, proporciona un enlace a la pantalla de acceso, generado por el mtodo crea t eLogo ut URL() . Ten en cuenta que un enlace de salida no permitir el acceso del usuario a ninguno de los servicios de Google.