Skip to content

pythonmexico.org

Sections
Personal tools
You are here: Home » Documentación » Primer Servlet con WebKit

Primer Servlet con WebKit

Mi Primer Servlet con WebKit

Autor: César Cárdenas Desales

Este es un breve manual que describe los pasos para programar un servlet sencillo de WebKit de Webware, un paquete para programación en Web.

Este manual fue elaborado en una PC con un sistema Windows. Se utilizaron los siguientes programas durante la instalación:
Las convenciones tomadas en este manual son:
  • Todas las pruebas de servidor se realizaron bajo el nombre de localhost. Ese nombre puede ser cambiado por el nombre del servidor o su dirección IP
  • He instalado el servidor Web Apache en la carpeta "C:\Archivos de programa\Apache Group" a la cual me referiré como DIR_APACHE
  • He instalado el Webware en la carpeta "C:\Archivos de programa\Webware". 

Instalar Apache

Usar el programa de instalación de apache que has bajado, hará el procedimiento más sencillo. Para la instalación en mi equipo, he elegido las siguientes opciones de instalación:
  • El nombre del servidor(ServerName) es localhost
  • El servidor atiende en el puerto 8080, y Apache se instala solo para el usuario actual  (Only for the current user, on port  8080, when Started manually)
  • El directorio de instalación es "C:\Archivos de programa\Apache Group"

Una vez terminada la instalación, de ser necesario arranca el servidor y abre la  URL http://localhost:8080/ para asegurarte de que está funcionando el servidor

De ser necesario, deberás configurar Apache para que pueda ejecutar CGI. Dicho procedimiento queda fuera del alcance de este manual, pero lo puedes consultar en la documentación de apache, o en thesitewizard(es para Perl, pero las instrucciones son casi idénticas para Python). Básicamente se trata de editar el archivo de configuración de Apache (DIR_APACHE\Apache2\conf\httpd.conf), habilitando las siguientes opciones:

ScriptAlias /cgi-bin/ "C:/Archivos de programa/Apache Group/Apache2/cgi-bin/"

también:

AddHandler cgi-script .cgi

y además:

<Directory />
Options FollowSymLinks +ExecCGI
AllowOverride None
</Directory>

Instalar WebWare

WebKit es un producto que forma parte de Webware.  Su característica principal es que nos permite crear programas que reaccionan a las solicitudes HTTP; esos programas se llaman servlets.

Deberás bajar la versión más actual de Webware desde
http://webware.sourceforge.net/. Se trata de un archivo comprimido (Webware-0.8.1.tar.gz es el nombre de la versión usada en este manual, la que tú obtengas podría ser más actual). Descomprime su contenido en  la carpeta de tu preferencia, yo lo he hecho en  "C:\Archivos de programa\Webware"

Abre una consola y ejecuta el siguiente comando para ir a la carpeta de instalación de Webware:

cd C:\Archivos de programa\Webware

Ahora que ya te encuentras dentro dicha carpeta, ejecuta lo siguiente

python install.py

El programa te responderá solicitando una contraseña. Introduce la contraseña de tu preferencia.

Instalar el adaptador

Lo siguiente es instalar un adaptador, de manera que el servidor Web puedaresponder a las peticiones de servlets de WebKit. Usaremos el adaptador wkcgi, pues aunque hay otros, este es el más sencillo de instalar.

Copia el archivo "C:\Archivos de programa\Webware\WebKit\Adapters\wkcgi\wkcgi.exe"  al directorio cgi-bin de Apache DIR_APACHE\Apache2\cgi-bin

Arrancar el servidor

Si es necesario debes poner en funcionamiento el servidor Web apache.

En una consola ejecuta los siguientes comandos para arrancar el servidor:

cd "C:\Archivos de programa\Webware\WebKit"
AppServer.bat

Verás aparecer varios datos de la configuración de WebKit.

Si es necesario también debes copiar el archivo "C:\Archivos de programa\Webware\WebKit\Adapters\WebKit.cgi" al directorio DIR_APACHE\Apache2\cgi-bin  y adecuarlo cambiando los valores de las siguientes propiedades:

WebwareDir = 'C:/Archivos de programa/Webware'
AppWorkDir = 'C:/Archivos de programa/Webware/WebKit'

También podría ser necesario copiar el archivo "C:\Archivos de programa\Webware\WebKit\Adapters\wkcgi\webkit.cfg" al directorio DIR_APACHE\Apache2\cgi-bin

Prueba que funcione el servidor de WebKit invocando la siguiente URL http://localhost:8080/cgi-bin/WebKit.cgi/

Si lo anterior no funciona, también puedes llamar directamente al ejecutable del adaptador mediante su URL: http://localhost:8080/cgi-bin/wkcgi.exe/, o cambiar la extensión del archivo de .exe a .cgi y llamarlo con: http://localhost:8080/cgi-bin/wkcgi.cgi/.

Agregar un nuevo contexto

Un contexto es un directorio que contiene sus propios archivos y servlets.

Deten el servidor de WebKit (CTRL + C)

Crea un nuevo directorio para el nuevo contexto. En este caso yo le llamaré Ejemplo

Dentro del nuevo directorio crea un nuevo archivo llamado __init__.py (esto hace que el  directorio sea también un módulo de Python). El archivo puede estar vacío o contener código que deseas que se ejecute cuando el servidor se carga

Si abres el archivo de configuración de la aplicación "C:\Archivos de programa\Webware\WebKit\Configs\Application.config" verás que en la propiedad Contexts se listan todos los contextos existentes, por ejemplo Admin, Examples, Testing y default. Se encuentran como entradas de un diccionario de Python, separados por comas:

'Contexts': {
        'Admin':         '%(WebKitPath)s/Admin',
        'Examples':      '%(WebKitPath)s/Examples',
        #'Docs':          '%(WebKitPath)s/Docs',
        'Testing':       '%(WebKitPath)s/Testing',
        'default':       '%(WebKitPath)s/Examples', 
}

Agrega el nuevo contexto al archivo de configuración. Esto se hace agregando al archivo "C:\Archivos de programa\Webware\WebKit\Configs\Application.config" una nueva entrada en la propiedad Contexts:

'Contexts': {
        'Admin':         '%(WebKitPath)s/Admin',
        'Examples':      '%(WebKitPath)s/Examples',
        'Ejemplo':       '%(WebKitPath)s/Ejemplo',
        #'Docs':          '%(WebKitPath)s/Docs',
        'Testing':       '%(WebKitPath)s/Testing',
        'default':       '%(WebKitPath)s/Examples', 
}

Crea un servlet en el nuevo contexto

Crea un archivo llamado Hola.py dentro del directorio del nuevo contexto (Ejemplo para este caso), con el siguiente contenido (el nombre de la clase debe coincidir con el nombre del archivo, sin la extensión):

#Hola.py
from WebKit.Page import Page

class Hola(Page):
def writeContent(self):
self.writeln('Hola Mundo!')


Esto es un servlet que solamente dice: Hola Mundo! Se trata de una clase que hereda de Page,  y que tiene el método
writeContent, que se encarga de enviar la respuesta al usuario.

Arranca de nuevo el servidor de WebKit y prueba el servlet accediendo a la siguiente dirección (no pongas la extensión .py, ya que no es requerida):

http://localhost:8080/cgi-bin/WebKit.cgi/Ejemplo/Hola

¡Listo! Verás el resultado de tu primer servlet.

Última Actualización: 6 Octubre 2005

César Cárdenas Desales

Created by cesar
Last modified 2005-10-06 16:30
 

Powered by Plone

This site conforms to the following standards: