Archive for the ‘Eclipse’ Category

Configurar la MV a usar para ejecutar Eclipse

diciembre 8, 2009

Abrir el archivo eclipse.ini y configurar el parámetro vm:

-vm
D:\java\jdk1.5.0_18\bin
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vmargs
-Dosgi.requiredJavaVersion=1.4
-Xms40m
-Xmx512m

Linquear fuentes desde un proyecto a otro

octubre 4, 2009

Clic derecho en el proyecto que va hacer referencia a las fuentes de otro proyecto.

Seleccionar Build Path>Link Source

Clic en el boton Browse, seleccionar la carpeta fuente java en el proyecto que será referenciado y ponerle un nombre al directorio referenciado.

Build Path

Build Path

Crear una Aplicación Web con Maven y JasperReports 3.0.0

septiembre 28, 2009

El punto de partida sera el proyecto creado con soporte para WTP usando Maven y Eclipse.

Editar el archivo pom.xml para agregar las dependencias de JasperReports, le daremos soporte para mostrar los reportes en PDF:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>jrwebapp</groupId>
 <artifactId>jrwebapp</artifactId>
 <packaging>war</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>jrwebapp Maven Webapp</name>
 <url>http://maven.apache.org</url>
 <dependencies>
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>servlet-api</artifactId>
 <version>2.2</version>
 <scope>provided</scope>
 <optional>true</optional>
 </dependency>
 <dependency>
 <groupId>commons-beanutils</groupId>
 <artifactId>commons-beanutils</artifactId>
 <version>1.7.0</version>
 <scope>compile</scope>
 </dependency>
 <dependency>
 <groupId>commons-collections</groupId>
 <artifactId>commons-collections</artifactId>
 <version>[2.1,)</version>
 <scope>compile</scope>
 </dependency>
 <dependency>
 <groupId>commons-digester</groupId>
 <artifactId>commons-digester</artifactId>
 <version>[1.7,)</version>
 <scope>compile</scope>
 </dependency>
 <dependency>
 <groupId>commons-logging</groupId>
 <artifactId>commons-logging</artifactId>
 <version>[1.0,)</version>
 <scope>compile</scope>
 </dependency>
 <dependency>
 <groupId>eclipse</groupId>
 <artifactId>jdtcore</artifactId>
 <version>[3.1.0,)</version>
 <scope>compile</scope>
 </dependency>
 <dependency>
 <groupId>com.lowagie</groupId>
 <artifactId>itext</artifactId>
 <version>2.1.0</version>
 <scope>compile</scope>
 </dependency>
 <dependency>
 <groupId>jasperreports</groupId>
 <artifactId>jasperreports</artifactId>
 <version>3.0.0</version>
 </dependency>
 <dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>3.8.1</version>
 <scope>test</scope>
 </dependency>
 </dependencies>
 <build>
 <finalName>jrwebapp</finalName>
 <pluginManagement>
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>2.0.2</version>
 <configuration>
 <source>1.5</source>
 <target>1.5</target>
 </configuration>
 </plugin>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-eclipse-plugin</artifactId>
 <version>2.4</version>
 <configuration>
 <downloadSources>false</downloadSources>
 <wtpversion>1.5</wtpversion>
 </configuration>
 </plugin>
 </plugins>
 </pluginManagement>
 </build>
</project>

Luegon desde el directorio donde se encuentra el archivo pom.xml del proyecto ingresar el comando:

mvn clean install

Cuando termine de actualizar el repositorio ingresar el comando:

mvn eclipse:clean eclipse:eclipse

Ahora le agregamos un servlet usando Eclipse:

Crear un Servlet con Eclipse

Crear un Servlet con Eclipse

Editamos el archivo JRServlet.java de modo que quede así:

package com.rab.ctrl;
import java.io.IOException;
 import java.io.PrintWriter;
import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class JRServlet
 */
 public class JRServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;
/**
 * @see HttpServlet#HttpServlet()
 */
 public JRServlet() {
 super();
 // TODO Auto-generated constructor stub
 }
/**
 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
 *      response)
 */
 protected void service(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {
 response.setContentType("text/html");
 PrintWriter out = response.getWriter();
 out.println("<html><head><title>JasperReports!</title>"
 + "</head><body>Hello Servlet!</body></html>");
 out.close();
 }
/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
 *      response)
 */
 protected void doGet(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {
 // TODO Auto-generated method stub
 }
/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
 *      response)
 */
 protected void doPost(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {
 // TODO Auto-generated method stub
 }
}

El archivo web.xml debe quedar así:

<!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>JasperReports Web Application</display-name>
 <servlet>
 <servlet-name>JRServlet</servlet-name>
 <display-name>JRServlet</display-name>
 <description></description>
 <servlet-class>
 com.rab.ctrl.JRServlet</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>JRServlet</servlet-name>
 <url-pattern>/JRServlet</url-pattern>
 </servlet-mapping>
 </web-app>

Finalmente editamos el archivo index.jsp el cual quedaría asi:

<html>
 <body>
 <h2>Hello World!</h2>
 <a href="/jrwebapp/JRServlet">/JRServlet</a>
 </body>
 </html>

Desplegamos en el servidor y el resultado sera el siguiente:

Hello Servlet

Hello Servlet

Ahora modificamos el método service de JRServlet así:

protected void service(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {

 try {
 ServletContext sc = getServletConfig().getServletContext();
 String jrxmlPath = "/WEB-INF/classes/reports/PrimerReport.jrxml";
 String jasperPath = "/WEB-INF/classes/reports/PrimerReport.jasper";

 InputStream is = sc.getResourceAsStream(jasperPath);

 if (is == null) {
 String rp = sc.getRealPath(jrxmlPath);
 JasperCompileManager.compileReportToFile(rp);
 is = sc.getResourceAsStream(jasperPath);
 }

 ServletOutputStream sos = response.getOutputStream();
 JasperRunManager.runReportToPdfStream(is, sos, new HashMap(),
 new JREmptyDataSource());

 response.setContentType("application/pdf");
 sos.flush();
 sos.close();

 } catch (JRException e) {
 StringWriter sw = new StringWriter();
 PrintWriter pw = new PrintWriter(sw);
 e.printStackTrace(pw);
 response.setContentType("text/plain");
 response.getOutputStream().print(sw.toString());
 }
 }

Tenemos la siguiente estructura de aplicación web, en el directorio jrwebapp creamos la carpeta reports

Estructura del proyecto

Estructura del proyecto

En la carpeta reports creamos un archivo PrimerReport.jrxml con el siguiente contenido:

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE jasperReport
 PUBLIC "-//JasperReports//DTD Report Design//EN"
 "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
 <jasperReport name="PrimerReport">
 <detail>
 <band height="20">
 <staticText>
 <reportElement x="20" y="0" width="200" height="20" />
 <text><![CDATA[El primer paso con JasperReports.]]></text>
 </staticText>
 </band>
 </detail>
 </jasperReport>

Finalmente, ejecutamos el proyecto y el resultado sería el siguiente:

Web PDF Report

Web PDF Report

Ver el Directorio Tomcat para Despliegue Web desde Eclipse

septiembre 27, 2009

Eclipse despliega los proyectos web al directorio que cumple el siguiente patrón:

C:\java\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps

En el cual C:\java\workspace es el espacio de trabajo configurado para Eclipse.

Crear un Proyecto Web con Maven y Eclipse

septiembre 27, 2009

Crear una Aplicación Web con Maven

Ir al directorio C:\java\workspace e ingresar el siguiente comando:

mvn archetype:create -DgroupId=jrwebapp -DartifactId=jrwebapp -DarchetypeArtifactId=maven-archetype-webapp

El resultado es la siguiente estructura:

maven-archetype-we bapp

maven-archetype-we bapp

Importar el Proyecto desde Eclipse

Ir al directorio C:\java\workspace\jrwebapp es donde se encuentra el archivo pom.xml, desde alli ingresar el siguiente comando:

mvn eclipse:clean eclipse:eclipse

Abrir eclipse e importar el proyecto

eclipse import

eclipse import

Este es el resultado final:

eclipse import webapp

eclipse import webapp

Soporte WTP

Para dar a nuestro proyecto soporte WTP editar el archivo pom.xml de modo que quede así:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>jrwebapp</groupId>
 <artifactId>jrwebapp</artifactId>
 <packaging>war</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>jrwebapp Maven Webapp</name>
 <url>http://maven.apache.org</url>
 <dependencies>
 <dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>servlet-api</artifactId>
 <version>2.2</version>
 <scope>provided</scope>
 <optional>true</optional>
 </dependency>
 <dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>3.8.1</version>
 <scope>test</scope>
 </dependency>
 </dependencies>
 <build>
 <finalName>jrwebapp</finalName>
 <pluginManagement>
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>2.0.2</version>
 <configuration>
 <source>1.5</source>
 <target>1.5</target>
 </configuration>
 </plugin>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-eclipse-plugin</artifactId>
 <version>2.4</version>
 <configuration>
 <downloadSources>false</downloadSources>
 <wtpversion>1.5</wtpversion>
 </configuration>
 </plugin>
 </plugins>
 </pluginManagement>
 </build>
</project>

En la consola ingresar los comandos:

mvn clean install

Y luego ingresar los comandos:

mvn eclipse:clean eclipse:eclipse

El resultado seria:

WTP Project

WTP Project

Al ejecutar el proyecto el resultado final sería:

Hello World webapp

Hello World webapp

Integrando Maven con Eclipse Galileo

septiembre 13, 2009

Crearemos un proyecto basico usando el plugin que integra Maven con Eclipse.

Primero instalar el plugin.

Install New Software

Install New Software

Seleccionamos un sitio desde el cual descargar el plugin haciendo clic en el link Available Software Sites.

Available Software Sites

Available Software Sites

Clic en Add e insertamos la URL del host donde se almacena el plugin para Maven.

Add Site

Add Site

Luego de que se instale el plugin reiniciamos eclipse y desde el menu Window > Preferences configuramos las opciones de entorno de ejecución, asegurarse que esta usando el JDK y no el JRE. (Puedes ver como se instala Java y como se configura el entorno de ejecución desde este link).

Installed JREs

Installed JREs

Abrir el archivo eclipse.ini y configuramos la maquina virtual a la que esta apuntando eclipse, cerrar y guardar los cambios.

eclipse.ini

eclipse.ini

Para asegurarnos de que los cambios surtan efectos iniciamos eclipse desde la consola con la opcion clean.

eclipse -clean

eclipse -clean

Seleccionar el menu New>Other.

Other

Other

En el asistente seleccionamos Maven Project y clic en Next.

Maven Project

Maven Project

Seleccionar la plantilla quickstart y clic en Next.

Archetype Quickstart

Archetype Quickstart

LLenar los campos correspondientes.

maven.eclipse.quickstart

maven.eclipse.quickstart

Clic derecho y seleccionar ejecutar como una aplicacion Java.

Run as Java Application

Run as Java Application

Seleccionar la aplicación correspondiente.

App.main

App.main

Es todo por el momento.