Vamos a instalar el plug-in de Tomcat en Eclipse 3.1, con la finalidad de tener integrado con el IDE el servidor de aplicaciones (por tanto, lo primero es tener instalado Tomcat). Para descargar el plug-in tenemos una web con numerosos productos en Eclipse-plugins. En nuestro caso hemos escogido el producto de Sysdeo. Ojo: a la hora de escoger un plugin hay que seleccionar uno que soporte nuestra versión de Eclipse.
En nuestro caso hemos descomprimido en el directorio plugins de Eclipse el archivo tomcatPluginV31.zip.
Al arrancar Eclipse podemos comprobar que se ha creado una nueva opción de menú:
Además se puede ver en "Help - About Eclipse SK - Plug-in details" que la plataforma ha incorporado el plug-in.
En "Windows -> Customize Perspective" tenemos acceso a dos aspectos: en primer lugar "shortcuts" para definir las opciones que aparecerán en los submenús, en este contexto tiene que aparecer activo el "Tomcat Project". En segundo lugar "commands", que indica los menús y botones que se mostrarán, evidentemente Tomcat tiene que aparecer tanto en MenuBar como en ToolBar.
Para configurar el plug-in se abre el menú "Windows -> Preferences" y seleccionamos el nodo "Tomcat". Lo primero es seleccionar la versión de Tomcat que tengamos instalado y a continuación señalamos el directorio de Tomcat, en nuestro caso es C:\Archivos de programa\Apache Group\Tomcat 4.1. Al hacer esto, Eclipse encuentra automáticamente el archivo server.xml de Tomcat (si no es así, debemos indica alguno). En este sentido cabe decir que cualquiera que conozca minimamente lo que hace server.xml no deseará que Eclipse toque este archivo, no deseará que se toque un archivo donde aparecen las definiciones de host y de contextos. Por ello, parece aconsejable hacer una copia de server.xml y ponerla en el directorio del workspace, de tal modo que sea este el archivo que modifique Eclipse, por ejemplo c:\Desarrollo\java\server.xml:
Como puede verse en la figura el archivo server.xml no es el de Tomcat, sino una copia que se ha dejado en el directorio de workspace. Esta precaución se produce por dos motivos: el primero es que Eclipse introduce el contexto en el host correcto si únicamente tienes un host (normalmente localhost), pero si existen varios lo pone en el primero (lo que no siempre es lo adecuado). En segundo lugar si borras un proyecto se puede observar que no siempre borra la entrada "Context" del archivo server.xml, con lo que se acaba generando basura.
Una vez definidas las preferencias ya podemos crear un proyecto "New - Project - Tomcat Project".
Para crear el servlet hacemos "New - Other - Class", donde definimos el directorio del código fuente, el paquete, el nombre de la clase y la superclase.
El servlet es muy sencillo, el típico "hola mundo". Además puede verse que hemos definido el archivo web.xml:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>servlets eclipse</display-name>
<servlet>
<servlet-name>saludo</servlet-name>
<servlet-class>primero.saludo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>saludo</servlet-name>
<url-pattern>/miservlet</url-pattern>
</servlet-mapping>
</web-app>
Ya está todo preparado para la ejecución.
Para ejecutar el servlet no hay más que iniciar Tomcat desde Eclipse. Pero cuidado, si ya tiene Tomcat iniciado desde Windows, puede observar mensajes de error por consola del tipo: "Address already in use: JVM_Bind:8080". El problema es que está intentando iniciar Tomcat sobre un puerto en el que ya hay trabajando una instancia de Tomcat., lo cual produce excepciones. La solución es sencilla, apague Tomcat desde Windows y lo reinica desde Eclipse. Esta iniciación desde Eclipse hace que Tomcat lea el server.xml que está en el workspace de Eclipse y no el server.xml del propio Tomcat que está en "TomcatX.X/conf".
A continuación puede arrancar desde un navegador el servlet. En nuestro ejemplo mediante la URL "http://localhost:8080/proy_servlets/miservlet". "proy_servlets" es el nombre del contexto (que nosotros hemos decidido que sea el mismo que el del proyecto, "miservlet" es el nombre que aparece en el URL-PATTERN de web.xml.
Recuerde que el servidor permanece activo hasta que no lo "apaga" (normalmente con el botón rojo de "Terminate" de la consola).