- Nos bajamos las últimas versiones de Tomcat y de Struts. Para este tutorial suponemos que Tomcat está instalado y arrancado, de forma que podemos desplegar las aplicaciones en la URL /manager (esa parte de la complejidad es para nosotros transparente ya que la gestiona Tomcat).
- Creamos la estructura de directorios siguiente (los ficheros los iremos creando más adelante): +-webapp_template/
- Grabamos las últimas versiones de las siguientes librerías (todas son o de Struts o de se pueden encontrar en la web de Apache) en el directorio lib, que es donde va a buscar los .jar el servidor Tomcat. Las librerías son:
- struts2-core
- xwork-core
- ognl
- freemarker
- commons-fileupload
- commons-io
- commons-lang
- commons-logging
- javassist
- El script en bash make.sh tiene el siguiente contenido (este realmente es el paso más "sysadmin"):
- Creamos nuestra vista (jsps/HelloWorld.jsp) y nuestro controlador (WEB-INF/classes/template/HelloWord.java) con el siguiente código:
- Lo siguiente es crear los ficheros de configuración de Tomcat (WEB-INF/web.xml) y de Struts (WEB-INF/struts.xml):
- Creamos el fichero index.jsp que luego llamará al Action:
- ./make.sh, desplegar (en el interfaz web del Tomcat) y probar la aplicación (en http://localhost:8080/webapp_template/). Cruzar los dedos para que funcione.
| make.sh
+-versions/
+-src/
| index.jsp
+-jsps/
| | HelloWorld.jsp
+-WEB-INF/
| web.xml
| struts.xml
+-lib/
| | [librerías.jar, ver más adelante]
+-classes/
| [ficheros .java dentro de su paquete]
----------- make.sh ------------------------------------
#!/bin/bash
TIMESTAMP=$( date "+%Y%m%d%H%M%S" )
RUTA_DIR_ACTUAL=$( dirname `pwd` )
NOMB_DIR_ACTUAL=$( basename `pwd` )
HOME_APP="`pwd`"
ROOT_LIB="$HOME_APP/src/WEB-INF/lib"
LIBRERIAS="."
for i in $( ls -1 $ROOT_LIB ); do
LIBRERIAS=$LIBRERIAS:$ROOT_LIB/$i
done
#echo LIBRERIAS=$LIBRERIAS
rm -rf compiled
cp -a src compiled
cd compiled
find . -name "*.java" -exec javac -verbose -classpath $LIBRERIAS {} \;
find . -name "*~" -exec rm -v {} \;
find . -name "#*#" -exec rm -v {} \;
find . -name "*.java" -exec rm -v {} \;
cp WEB-INF/struts.xml WEB-INF/classes
zip -r ../${NOMB_DIR_ACTUAL}.war *
cd ..
cp ${NOMB_DIR_ACTUAL}.war versions/${NOMB_DIR_ACTUAL}_${TIMESTAMP}.war
---------------------------------------------------------
----------- HelloWorld.jsp ------------------------------
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
<p><s:property value="greetings" /></p>
---------------------------------------------------------
----------- HelloWorld.java -----------------------------
package template;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
String greetings = null;
public String execute() throws Exception {
setGreetings("Hello World");
return SUCCESS;
}
public String getGreetings() {
return greetings;
}
public void setGreetings(String greetings) {
this.greetings = greetings;
}
}
---------------------------------------------------------
----------- web.xml -------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>hello</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
---------------------------------------------------------
----------- struts.xml ----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="hello" extends="struts-default">
<action name="HelloWorld" class="template.HelloWorld">
<result>/jsps/HelloWorld.jsp</result>
</action>
</package>
</struts>
---------------------------------------------------------
----------- index.jsp -----------------------------------
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE& html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello Sample</title>
</head>
<body>
<s:action name="HelloWorld" executeResult="true"></s:action>
</body>
</html>
---------------------------------------------------------
La mayor parte de este tutorial está transcrito de una página web donde lo encontré. Realmente mi aportación es el script make.sh y perfilar la estructura de directorios.
Cualquier comentario será bienvenido.
No hay comentarios:
Publicar un comentario