style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Dudas con mis primeros pasos con J2EE.

¡Hola a todos!,

Bueno pues antes que nada, les haré una breve introducción: Hace unos días empecé a dar mis primeros pasos con J2EE (Fuí muy breve para que no se duerman leyendo). Estoy documentándome un poco pero aún las cosas no me quedan muy claras, me gustaría me puedieran ayudar respecto a lo básico en su funcionamiento. Recién acabo de instalar Netbeans 6.7.1 que incluye los complementos para crear proyectos de "Java Web" y luego me pide seleccionar un servidor y me aparecen dos opciones: "GlassFish v2.1" y "GlassFish v3 Prelude Domain", entonces, ¿Cuál es la diferencia entre uno y otro? ¿Qué es mas o me nos lo que hacen?. Algunos también tienen Tomcat y escuché que puedo utilizarlos indistintamente. Realmente cualquier aportación que me guíe por "el buen camino de J2EE" sería beneficioso, aunque sería bueno que no me digan cosas algo "locas" mas bien las básicas, para no perderme por ahora y poder tomar rumbo.

Esto es todo por el momento, estaré frecuentándolos por los foros de J2EE y espero tener una respuesta positiva ¡por parte de ustedes!, gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de cfpmx

También se desplega una

También se desplega una opción en Netbeans al crear mi proyecto llamada "Java EE Version" y ahí asoman tres opciones: Java EE 5, J2EE 1.4 y J2EE 1.3. ¿Cuál puedo seleccionar? Hasta el momento estoy escogiendo las opciones por default y en estos momentos voy a hacer mi primer proyecto, a ver cómo me va.

Imagen de ezamudio

JEE 5

JEE 5 es lo más nuevo... las otras dos son las conocidas como J2EE, creo que el estandar es básicamente el mismo pero uno es para usarse con Java 1.3 y el otro con Java 1.4. JEE 5 ya son estándares distintos (versiones más recientes de EJB, así como de arquitecturas de JTA y JCA, vienen algunas cosas nuevas también) y funciona con Java 5 o 6.

Glassfish es un contenedor de aplicaciones JEE 5. Uno similar es JBoss 5. Tomcat es un contenedor de aplicaciones web y de hecho JBoss contiene Tomcat dentro para la parte de web apps. Lo adicional de JBoss y Glassfish es que puedes correr servicios que se pueden acceder por medio de RMI o de algunos otros protocolos. Cada uno tiene sus beneficios pero la cosa es que tienen que apegarse a un estándar, y mientras tu aplicación siga dichos estándares, puedes crear un WAR o un EAR que funcione con un mínimo de cambios en configuraciones, dentro de Glassfish o JBoss, sin tener que recompilar nada.

Y pues tienes que familiarizarte con muchos TLA's (Three-Letter Acronyms) como JTA, JCA, EJB, BPM, RMI, JMS, etc.

Imagen de cfpmx

Hola ezamudio, gracias por

Hola ezamudio, gracias por tu respuesta. Ahora tengo otro problema, no logro compilar un pequeño ejemplo, no sé que es lo que hago mal.

Archivo formulario.html

<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
      <h2>Pagina para seleccionar cerveza...</h2>
      <form name="form" action="SelectBeer.do" method="POST">
          <select name="color">
              <option>light</option>
              <option>ambar</option>
              <option>oscura</option>
          </select>
          <input type="submit" value="Enviar" />
      </form>
  </body>
</html>

Archivo SelectBeer.java (Servlet)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.example.servlet;

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;

import com.example.model.ExpertoCerveza2;
import java.util.*;
/**
 *
 * @author cesarfp
 */

public class SelectBeer extends HttpServlet {
   
    /**
     * Processes requests for both HTTP <code>GET

and POST methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
// TODO output your page here
out.println("");
out.println("");
out.println("Servlet SelectBeer");
out.println("");
out.println("");
//out.println("

Servlet SelectBeer at " + request.getContextPath () + "

");
//out.println("

Recomendacion para seleccion de cerveza

");
String c = request.getParameter( "color" );

ExpertoCerveza2 ec = new ExpertoCerveza2( );
List resultado = ec.getMarcas( c );
Iterator it = resultado.iterator( );
while( it.hasNext( ) ) {
out.println( " Opción: " + it.next( ) );
}

//out.println( "Buen color de cerveza" + c );
out.println("");
out.println("");

} finally {
out.close();
}
}

//
/**
* Handles the HTTP GET method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Handles the HTTP POST method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}//

}

Archivo ExpertoCerveza.java (Modelo)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.example.model;
import java.util.*;
/**
 *
 * @author cesarfp
 */

public class ExpertoCerveza2  {

    public List getMarcas( String color ) {
        List marcas = new ArrayList( );
        if(color.equals("ambar"))
            marcas.add("XX Ambar");
        else if( color.equals( "oscura" )) {
            marcas.add("Negra Modelo");
            marcas.add("Superior");
        }
        else {
            marcas.add( "Tecate Light" );
            marcas.add( "Sol Light" );
        }
        return marcas;
    }
}

No sé si haya algo mal. =S

Imagen de cfpmx

Miren, les adjunto el

Miren, les adjunto el archivo para que vean el ejemplo que intento hacer... es muy sencillo pero no logro hacer que funcione:
http://cid-23c5625615d3fbdb.skydrive.live.com/browse.aspx/.Public/tmp

Imagen de ezamudio

Error?

Mencionas que no compila pero no dices qué errores te da el compilador.

Imagen de cfpmx

¡Ya logré solucionarlo!

¡Ya logré solucionarlo! Primero que nada, le modifiqué en el formulario "SelectBeer.do" a "SelectBeer" no entiendo cuál era el inconveniente... aparte funcionó con Tomcat, por que con GlassFish no me funcionó.

Imagen de benek

Errores

Postea tus errores de compilación o lo que te salió, así es imposible saber cual fue el problema ;-)

Imagen de mathemathician

Una pregunta

Oye ¿de casualidad el ejemplo no es de un libro llamado "Head First Servlets and JSP" de Kathy Sierra? Porque este libro tiene algunos problemas.

Imagen de cfpmx

No sé, estoy siguiendo un

No sé, estoy siguiendo un ejemplo que estaba en unas diapositivas de la facultad de mátemáticas de la uady.
http://cid-23c5625615d3fbdb.skydrive.live.com/browse.aspx/.Public/tmp

Publicaré mis errores para la próxima.

Imagen de mathemathician

Efectivamente

Ya vi las diapositivas y efectivamente los diagramas y el ejemplo son del libro que te menciono "Head First Servlets and JSP" . Yo también tuve algunos problemas con esos ejercicios. Pero que bueno que ya los ejecutaste. Saludos

Imagen de cfpmx

Muchas gracias por la

Muchas gracias por la sugerencias mathemathician, lo tendré presente. Hasta pronto.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">