1.Creamos una Enterprise Aplication con modulo EJB y WAR
2.Sobre la libreria EJB agregamos la libreria JAR de Oracle para el acceso a la base de datos
3.Sobre el proyecto EJB boton derecho y creamos un SessionBean indicando que es Remote y Stateless
3.Nos vamos a la carpeta EnterpriseBeans y en la sesion bean creada pulsamos sobre Add y sobre BusinessMethod
y lo llamamos getEmpleadosDepartamento con ReturnType java.lang.String y en Parameters recibe un
departamento que sera un int
4.La clase nos quedara de la siguiente manera para que vuelva a ser recuperada:
@Stateless
public class SessionBeanBuscadorEmpleados implements SessionBeanBuscadorEmpleadosRemote {
@Override
public String getEmpleadosDepartamento(int departamento) {
try{
//Agregamos la variable tabla donde se veran todos los elementos a buscar
String tabla = "";
//Creamos los accesos a la base de datos
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system", "123456");
PreparedStatement st = conn.prepareStatement("SELECT NOMBRE, APELLIDOS, ID FROM EMPLEADOS WHERE ID="+departamento+"%");
st.setInt(1, departamento);
ResultSet rs = st.executeQuery();
tabla = "<table border='1'>";
while(rs.next()){
tabla += "<tr>";
tabla += "<td>"+rs.getString(1)+"</td>";
tabla += "<td>"+rs.getString(2)+"</td>";
tabla += "<td>"+rs.getString(3)+"</td>";
tabla += "</tr>";
}
tabla += "</table>";
return tabla;
} catch (SQLException ex) {
return "Error "+ex.toString();
}
}
}
5.Nos vamos al proyecto WAR y creamos un Servlet que llamara al EJB llamado ServletBuscadorEmpleados
6.Pulsamos boton derecho sobre el codigo del Servlet dentro del try y hacemos una llamada al EJB
mediante InsertCode >> Call Enterprise Bean y seleccionamos nuestro Session bean dentro del EJB
7.El Servlet nos quedará:
@WebServlet(name = "ServletBuscadorEmpleados", urlPatterns = {"/ServletBuscadorEmpleados"})
public class ServletBuscadorEmpleados extends HttpServlet {
@EJB
private SessionBeanBuscadorEmpleadosRemote sessionBeanBuscadorEmpleados;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ServletBuscadorEmpleados</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Tabla de Empleados:</h1>");
int numero = Integer.parseInt(request.getParameter("txtnumerodep"));
String tabla = sessionBeanBuscadorEmpleados.getEmpleadosDepartamento(numero);
out.println(tabla);
out.println("</body>");
Mostrando entradas con la etiqueta Ejercicios. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ejercicios. Mostrar todas las entradas
Llamada de un EJB desde un Servlet con un JSP
1.Crearemos un proyecto EJB llamado ProyectoBeanSession marcando la opcion de tipo WAR y EJB
2.Sobre el proyecto EJB crearemos una nueva Session Bean y dejaremos el nombre por defecto NewSessionBean
y lo incluiremos en un paquete llamado paquetebean.
3.Marcaremos la opción de tipo Session Stateful e indicaremos que será de tipo remoto y
seleccionaremos el nombre del proyecto EJB.
4.Una vez creado el Bean, vamos a implementar un método de acción. Debemos ir al proyecto EJB, sobre la carpeta
Enterprise Bean y seleccionamos la opción Add, Bussines Method para crearnos un método de negocio
5.Escribimos el nombre del método como getSaludo, e indicamos que el tipo que devolverá es de la clase String.
6.Nos quedará de la siguiente forma:
package paquetebean;
import javax.ejb.Stateless;
@Stateless
public class NewSessionBean implements NewSessionBeanRemote {
@Override
public String getSaludo() {
return "Mensaje enviado desde un EJB @Stateless";
}
}
7.Ahora vamos a agregar un Servlet que implementará la funcionalidad del componente EJB que nos hemos creado.
8.Sobre el proyecto WAR, seleccionaremos la opción New >> Servlet y lo llamaremos ServletLlamadaEJB
y lo incluiremos en un paquete llamado paqueteservlets.
9.No incluiremos la información en el archivo descriptor de la aplicación, aunque si lo hiciéramos,
la llamada al EJB seguiría siendo la misma.
10.Una vez que nos ha creado el servlet, debemos implementar la llamada, para ello utilizaremos el asistente
de código que nos permite insertar código generado dinámicamente.
11.Sobre el código del servlet, seleccionamos la opción Insert Code
12.Nos aparecerán una serie de opciones, nosotros seleccionaremos la opción que llama a un Bean.
Marcaremos la opción Call Enterprise Bean.
13.Al seleccionar dicha opción, nos muestra una ventana dónde debemos indicar el Bean que vamos a llamar
desde el servlet. Buscamos el bean en el proyecto EJB y pulsamos sobre OK.
14.Podremos comprobar en el código que nos genera las librerías necesarias para realizar la llamada al
Bean de Session:
import javax.ejb.EJB;
import paquetebean.NewSessionBeanRemote;
15.También nos generará un objeto para poder invocar al método getSaludo desde nuestro servlet. Dicho objeto
podremos comprobar que contiene la anotación @EJB.
@EJB
private NewSessionBeanRemote newSessionBean;
16.Ahora vamos a implementar el servlet para poder escribir el saludo escrito y enviado desde el EJB:
@WebServlet(name="ServletLlamadaEJB", urlPatterns={"/ServletLlamadaEJB"})
public class ServletLlamadaEJB extends HttpServlet {
@EJB
private NewSessionBeanRemote newSessionBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<HTML>");
out.println("<head>");
out.println("<title>Servlet ServletLlamadaEJB</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet con llamada a EJB</h1>");
out.println(newSessionBean.getSaludo());
out.println("</body>");
out.println("</HTML>");
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
17.Nos quedaría realizar la llamada al Servlet. Para ello, sobre el proyecto WAR vamos a seleccionar la página
que trae por defecto index.html y la implementaremos.Escribiremos el siguiente código:
<%@page contentType="text/HTML" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/HTML; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Bienvenido a la prueba de EJB</h1>
<form name="form1" action="ServletLlamadaEJB">
<input type="submit" value="Pulse para llamar al componente EJB">
</form>
</body>
</HTML>
2.Sobre el proyecto EJB crearemos una nueva Session Bean y dejaremos el nombre por defecto NewSessionBean
y lo incluiremos en un paquete llamado paquetebean.
3.Marcaremos la opción de tipo Session Stateful e indicaremos que será de tipo remoto y
seleccionaremos el nombre del proyecto EJB.
4.Una vez creado el Bean, vamos a implementar un método de acción. Debemos ir al proyecto EJB, sobre la carpeta
Enterprise Bean y seleccionamos la opción Add, Bussines Method para crearnos un método de negocio
5.Escribimos el nombre del método como getSaludo, e indicamos que el tipo que devolverá es de la clase String.
6.Nos quedará de la siguiente forma:
package paquetebean;
import javax.ejb.Stateless;
@Stateless
public class NewSessionBean implements NewSessionBeanRemote {
@Override
public String getSaludo() {
return "Mensaje enviado desde un EJB @Stateless";
}
}
7.Ahora vamos a agregar un Servlet que implementará la funcionalidad del componente EJB que nos hemos creado.
8.Sobre el proyecto WAR, seleccionaremos la opción New >> Servlet y lo llamaremos ServletLlamadaEJB
y lo incluiremos en un paquete llamado paqueteservlets.
9.No incluiremos la información en el archivo descriptor de la aplicación, aunque si lo hiciéramos,
la llamada al EJB seguiría siendo la misma.
10.Una vez que nos ha creado el servlet, debemos implementar la llamada, para ello utilizaremos el asistente
de código que nos permite insertar código generado dinámicamente.
11.Sobre el código del servlet, seleccionamos la opción Insert Code
12.Nos aparecerán una serie de opciones, nosotros seleccionaremos la opción que llama a un Bean.
Marcaremos la opción Call Enterprise Bean.
13.Al seleccionar dicha opción, nos muestra una ventana dónde debemos indicar el Bean que vamos a llamar
desde el servlet. Buscamos el bean en el proyecto EJB y pulsamos sobre OK.
14.Podremos comprobar en el código que nos genera las librerías necesarias para realizar la llamada al
Bean de Session:
import javax.ejb.EJB;
import paquetebean.NewSessionBeanRemote;
15.También nos generará un objeto para poder invocar al método getSaludo desde nuestro servlet. Dicho objeto
podremos comprobar que contiene la anotación @EJB.
@EJB
private NewSessionBeanRemote newSessionBean;
16.Ahora vamos a implementar el servlet para poder escribir el saludo escrito y enviado desde el EJB:
@WebServlet(name="ServletLlamadaEJB", urlPatterns={"/ServletLlamadaEJB"})
public class ServletLlamadaEJB extends HttpServlet {
@EJB
private NewSessionBeanRemote newSessionBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<HTML>");
out.println("<head>");
out.println("<title>Servlet ServletLlamadaEJB</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet con llamada a EJB</h1>");
out.println(newSessionBean.getSaludo());
out.println("</body>");
out.println("</HTML>");
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
17.Nos quedaría realizar la llamada al Servlet. Para ello, sobre el proyecto WAR vamos a seleccionar la página
que trae por defecto index.html y la implementaremos.Escribiremos el siguiente código:
<%@page contentType="text/HTML" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/HTML; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Bienvenido a la prueba de EJB</h1>
<form name="form1" action="ServletLlamadaEJB">
<input type="submit" value="Pulse para llamar al componente EJB">
</form>
</body>
</HTML>
Llamada de un EJB desde un Servlet
1.Creamos un nuevo proyecto EnterpriseAplication con el modulo EJB y WAR con GlassFishServer
2.Sobre el proyecto EJB boton derecho y creamos un SessionBean indicando que es Remote usando nuestro mismo
proyecto EJB por si queremos usarlo en otros proyectos, con sesion Stateless(sin estado)
3.Nos vamos a la carpeta EnterpriseBeans y en la sesion bean creada pulsamos sobre Add y sobre BusinessMethod
y lo llamamos getDoble con ReturnType java.lang.String y en Parameters agregamos un numero de tipo int
4.La clase nos quedara de la siguiente manera para que vuelva a ser recuperada:
@Stateless
public class NewSessionBean implements NewSessionBeanRemote {
@Override
public String getDoble(int numero) {
int resultado = numero*2;
return "El doble del numero es "+resultado;
}
}
5.Nos vamos al proyecto WAR, que es el que usuario vería y el que consumiría los EJB
6.Creamos un Servlet que llamara al EJB creado dentro de la carpeta Source Packages en el WAR
7.Pulsamos boton derecho sobre el codigo del Servlet dentro del try y hacemos una llamada al EJB
mediante InsertCode >> Call Enterprise Bean y seleccionamos nuestro Session bean dentro del EJB lo que
nos introducirá el codigo
@EJB
private NewSessionBeanRemote newSessionBean;
8.En el Servlet introduciremos una variable num que recogerá el valor que venga de un futuro JSP que creemos
int num = Integer.parseInt(request.getParameter("txtnumero"));
9.Queremos utilizar este numero para llevarlo a nuestro Bean y calcular el doble:
String texto = newSessionBean.getDoble(num);
out.println(texto);
10.Creamos la pagina HTML donde introduciremos el numero a calcular el doble:
<form name="form1" action="NewServletLlamada">
Introducir un numero: <input type="text" name="txtnumero"><br>
<input type="submit" name="Calcular Doble">
</form>
11.El Servlet nos quedará:
@WebServlet(name = "NewServletLlamada", urlPatterns = {"/NewServletLlamada"})
public class NewServletLlamada extends HttpServlet {
@EJB
private NewSessionBeanRemote newSessionBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet NewServletLlamada</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet NewServletLlamada at " + request.getContextPath() + "</h1>");
int num = Integer.parseInt(request.getParameter("txtnumero"));
String texto = newSessionBean.getDoble(num);
out.println(texto);
out.println("</body>");
out.println("</html>");
}
}
2.Sobre el proyecto EJB boton derecho y creamos un SessionBean indicando que es Remote usando nuestro mismo
proyecto EJB por si queremos usarlo en otros proyectos, con sesion Stateless(sin estado)
3.Nos vamos a la carpeta EnterpriseBeans y en la sesion bean creada pulsamos sobre Add y sobre BusinessMethod
y lo llamamos getDoble con ReturnType java.lang.String y en Parameters agregamos un numero de tipo int
4.La clase nos quedara de la siguiente manera para que vuelva a ser recuperada:
@Stateless
public class NewSessionBean implements NewSessionBeanRemote {
@Override
public String getDoble(int numero) {
int resultado = numero*2;
return "El doble del numero es "+resultado;
}
}
5.Nos vamos al proyecto WAR, que es el que usuario vería y el que consumiría los EJB
6.Creamos un Servlet que llamara al EJB creado dentro de la carpeta Source Packages en el WAR
7.Pulsamos boton derecho sobre el codigo del Servlet dentro del try y hacemos una llamada al EJB
mediante InsertCode >> Call Enterprise Bean y seleccionamos nuestro Session bean dentro del EJB lo que
nos introducirá el codigo
@EJB
private NewSessionBeanRemote newSessionBean;
8.En el Servlet introduciremos una variable num que recogerá el valor que venga de un futuro JSP que creemos
int num = Integer.parseInt(request.getParameter("txtnumero"));
9.Queremos utilizar este numero para llevarlo a nuestro Bean y calcular el doble:
String texto = newSessionBean.getDoble(num);
out.println(texto);
10.Creamos la pagina HTML donde introduciremos el numero a calcular el doble:
<form name="form1" action="NewServletLlamada">
Introducir un numero: <input type="text" name="txtnumero"><br>
<input type="submit" name="Calcular Doble">
</form>
11.El Servlet nos quedará:
@WebServlet(name = "NewServletLlamada", urlPatterns = {"/NewServletLlamada"})
public class NewServletLlamada extends HttpServlet {
@EJB
private NewSessionBeanRemote newSessionBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet NewServletLlamada</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet NewServletLlamada at " + request.getContextPath() + "</h1>");
int num = Integer.parseInt(request.getParameter("txtnumero"));
String texto = newSessionBean.getDoble(num);
out.println(texto);
out.println("</body>");
out.println("</html>");
}
}
Acceso de un Java Beans a una Base de Datos Oracle mediante un JSP
Enterprise Java Beans (EJB) es una plataforma para construir aplicaciones de negocio portables, reutilizables y escalables usando el lenguaje de programación Java.
Todo EJB está compuesto por dos capas:
- Capa Interfaz, indica a las clases que consuman los métodos y características del EJB.
- Capa Implementación es una clase que implementa la capa de Interfaz.
EJEMPLO:
1.Dibujaremos un control HTML Select que mantendrá el elemento seleccionado cuando enviemos una petición al
servidor.
2.Creaamos un nuevo proyecto Web Application llamado ProyectoJSPJavaBeans y utilizaremos el servidor GlassFish
3.Sobre las librerías vamos a agregar el conector JAR para Oracle
4.Creamos una clase Java que será la que dibujará los elementos en el Select y los mantendrá seleccionados
y la llamaremos BeanDesplegable y crearemos un paquete llamado paquetebeans:
package paquetebeans;
import java.sql.*;
public class BeanDesplegable {
Connection cn = null;
java.sql.Statement st = null;
final String usuario = "system";
final String password = "12345";
final String cadenaconexion = "jdbc:oracle:thin:@localhost:1521:XE";
public BeanDesplegable () {
}
public void conectar() throws SQLException, Exception
{
try
{
// 1.- Cargamos el driver
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// 2.- Nos conectamos, paso el nombre de la conexion, usuario y contraseña.
this.cn = DriverManager.getConnection(cadenaconexion, usuario, password);
} catch (SQLException e)
{
System.out.println(e.toString());
}
}
public ResultSet crearResultSet(String consulta) throws Exception
{
ResultSet rs = null;
st = cn.createStatement();
rs = st.executeQuery(consulta);
return rs;
}
public String cargarCombo(ResultSet rs, String nombreselect, String valorseleccionado)
{
String combo;
try
{
combo = "<select name='"+nombreselect+"'>";
while (rs.next())
{
if (rs.getString(1).equals(valorseleccionado))
{
combo+="<option SELECTED ";
}else{
combo+="<option ";
}
combo+="value='"+rs.getString(1)+"'>";
combo+=rs.getString(2);
combo+="</option>";
}
combo += "</select>";
return combo;
} catch (SQLException ex) {
return ex.toString();
}
}
}
5.Utilizamos la página index.jsp del proyecto para poder realizar la llamada al Bean y mostrar los datos de
los departamentos.
<%@page import="java.sql.ResultSet"%>
<%@page contentType="text/HTML" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<jsp:useBean id="practica" scope="session" class="paquetebeans.BeanDesplegable "/>
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/HTML; charset=UTF-8">
<title>Cargar Desplegable</title>
</head>
<body>
<form name="form1" action="index.jsp" method="post">
Seleccione un departamento:
<%
practica.conectar();
ResultSet rs =practica.crearResultSet("SELECT DEPTNO,DNAME FROM DEPT");
String combo;
String etiqueta="";
if (request.getParameter("cmbdept")!=null)
{
String dept = request.getParameter("cmbdept");
combo = practica.cargarCombo(rs, "cmbdept", dept);
etiqueta = "<div>Elemento seleccionado:"+dept+"</div>";
}else{
combo = practica.cargarCombo(rs, "cmbdept", "");
}
%>
<%=combo%>
<input type="submit" value="Enviar formulario">
<%=etiqueta%>
</form>
</body>
</HTML>
Todo EJB está compuesto por dos capas:
- Capa Interfaz, indica a las clases que consuman los métodos y características del EJB.
- Capa Implementación es una clase que implementa la capa de Interfaz.
EJEMPLO:
1.Dibujaremos un control HTML Select que mantendrá el elemento seleccionado cuando enviemos una petición al
servidor.
2.Creaamos un nuevo proyecto Web Application llamado ProyectoJSPJavaBeans y utilizaremos el servidor GlassFish
3.Sobre las librerías vamos a agregar el conector JAR para Oracle
4.Creamos una clase Java que será la que dibujará los elementos en el Select y los mantendrá seleccionados
y la llamaremos BeanDesplegable y crearemos un paquete llamado paquetebeans:
package paquetebeans;
import java.sql.*;
public class BeanDesplegable {
Connection cn = null;
java.sql.Statement st = null;
final String usuario = "system";
final String password = "12345";
final String cadenaconexion = "jdbc:oracle:thin:@localhost:1521:XE";
public BeanDesplegable () {
}
public void conectar() throws SQLException, Exception
{
try
{
// 1.- Cargamos el driver
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// 2.- Nos conectamos, paso el nombre de la conexion, usuario y contraseña.
this.cn = DriverManager.getConnection(cadenaconexion, usuario, password);
} catch (SQLException e)
{
System.out.println(e.toString());
}
}
public ResultSet crearResultSet(String consulta) throws Exception
{
ResultSet rs = null;
st = cn.createStatement();
rs = st.executeQuery(consulta);
return rs;
}
public String cargarCombo(ResultSet rs, String nombreselect, String valorseleccionado)
{
String combo;
try
{
combo = "<select name='"+nombreselect+"'>";
while (rs.next())
{
if (rs.getString(1).equals(valorseleccionado))
{
combo+="<option SELECTED ";
}else{
combo+="<option ";
}
combo+="value='"+rs.getString(1)+"'>";
combo+=rs.getString(2);
combo+="</option>";
}
combo += "</select>";
return combo;
} catch (SQLException ex) {
return ex.toString();
}
}
}
5.Utilizamos la página index.jsp del proyecto para poder realizar la llamada al Bean y mostrar los datos de
los departamentos.
<%@page import="java.sql.ResultSet"%>
<%@page contentType="text/HTML" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<jsp:useBean id="practica" scope="session" class="paquetebeans.BeanDesplegable "/>
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/HTML; charset=UTF-8">
<title>Cargar Desplegable</title>
</head>
<body>
<form name="form1" action="index.jsp" method="post">
Seleccione un departamento:
<%
practica.conectar();
ResultSet rs =practica.crearResultSet("SELECT DEPTNO,DNAME FROM DEPT");
String combo;
String etiqueta="";
if (request.getParameter("cmbdept")!=null)
{
String dept = request.getParameter("cmbdept");
combo = practica.cargarCombo(rs, "cmbdept", dept);
etiqueta = "<div>Elemento seleccionado:"+dept+"</div>";
}else{
combo = practica.cargarCombo(rs, "cmbdept", "");
}
%>
<%=combo%>
<input type="submit" value="Enviar formulario">
<%=etiqueta%>
</form>
</body>
</HTML>
Interface en Enterprise Java Beans EJB
CREACION Y LLAMADA DE UN JAVABEANS CON INTERFAZ
1.Creamos un nuevo proyecto de JavaAplication y vamos a agregar una Interfaz que será el contrato.
2.Boton derecho sobre el paquete y seleccionamos JavaInterface y llamaremos a nuestra Interfaz: InterfazEJB
3.Escribimos el siguiente código en la Interfaz.
package javaapplication1;
public interface InterfazEJB {
public void GetMensaje(String nombre);
}
4.A continuación, nos crearemos una clase sobre el mismo paquete que llamaremos ClaseEJB.
Dicha clase se encargará de implementar la Interfaz de contrato EJB.
5.Debemos utilizar el espacio de nombres siguiente: import javax.ejb.Stateless
6.Al no reconocer la librería de los EJB, tendremos que incluirla manualmente para poder trabajar con dichas
clases.
7.Boton derecho sobre la carpeta Libraries y pulsamos "Agregar archivo JAR/carpeta". Buscamos la librería de
ejb que hayamos descargado desde la pagina oficial de Oracle
8.Implementamos la Interfaz sobre la ClaseEJB. Para ello escribimos el siguiente código:
public class ClaseEJB implements InterfazEJB {
9.Eso nos dará un fallo debido a que tenemos que implementar todos los métodos que contenga la Interfaz
Debemos pulsar sobre el símbolo de la bombilla de la izquierda del código y nos aparecerá una opción para
Implementar los métodos abstractos.
10.Una vez que tenemos todos los métodos implementados, escribimos el siguiente código dentro de la clase
llamada ClaseEJB. Donde el @Override significa sobreescribir el metodo anteriormente definido.
package javaapplication1;
import javax.ejb.Stateless;
public class ClaseEJB implements InterfazEJB
{
@Override
public void GetMensaje(String nombre) {
System.out.println("Primer EJB, Bienvenido a la tecnología " + nombre);
}
}
11.Creamos un cliente que consuma nuestro bean. Aagregamos una nueva clase sobre el paquete creado y
la llamaremos ClienteEJB.
package javaapplication1;
import javax.ejb.EJB;
public class ClienteEJB {
@EJB
private ClaseEJB BeanEJB;
void MetodoCliente()
{
BeanEJB = new ClaseEJB();
BeanEJB.GetMensaje("Usuario de EJB");
}
}
12.Ahora iremos a la clase inicial de los proyectos de J2SE llamada Main.java. Implementamos el siguiente código:
package javaapplication1;
public class Main {
public static void main(String[] args) {
ClienteEJB cliente = new ClienteEJB();
1.Creamos un nuevo proyecto de JavaAplication y vamos a agregar una Interfaz que será el contrato.
2.Boton derecho sobre el paquete y seleccionamos JavaInterface y llamaremos a nuestra Interfaz: InterfazEJB
3.Escribimos el siguiente código en la Interfaz.
package javaapplication1;
public interface InterfazEJB {
public void GetMensaje(String nombre);
}
4.A continuación, nos crearemos una clase sobre el mismo paquete que llamaremos ClaseEJB.
Dicha clase se encargará de implementar la Interfaz de contrato EJB.
5.Debemos utilizar el espacio de nombres siguiente: import javax.ejb.Stateless
6.Al no reconocer la librería de los EJB, tendremos que incluirla manualmente para poder trabajar con dichas
clases.
7.Boton derecho sobre la carpeta Libraries y pulsamos "Agregar archivo JAR/carpeta". Buscamos la librería de
ejb que hayamos descargado desde la pagina oficial de Oracle
8.Implementamos la Interfaz sobre la ClaseEJB. Para ello escribimos el siguiente código:
public class ClaseEJB implements InterfazEJB {
9.Eso nos dará un fallo debido a que tenemos que implementar todos los métodos que contenga la Interfaz
Debemos pulsar sobre el símbolo de la bombilla de la izquierda del código y nos aparecerá una opción para
Implementar los métodos abstractos.
10.Una vez que tenemos todos los métodos implementados, escribimos el siguiente código dentro de la clase
llamada ClaseEJB. Donde el @Override significa sobreescribir el metodo anteriormente definido.
package javaapplication1;
import javax.ejb.Stateless;
public class ClaseEJB implements InterfazEJB
{
@Override
public void GetMensaje(String nombre) {
System.out.println("Primer EJB, Bienvenido a la tecnología " + nombre);
}
}
11.Creamos un cliente que consuma nuestro bean. Aagregamos una nueva clase sobre el paquete creado y
la llamaremos ClienteEJB.
package javaapplication1;
import javax.ejb.EJB;
public class ClienteEJB {
@EJB
private ClaseEJB BeanEJB;
void MetodoCliente()
{
BeanEJB = new ClaseEJB();
BeanEJB.GetMensaje("Usuario de EJB");
}
}
12.Ahora iremos a la clase inicial de los proyectos de J2SE llamada Main.java. Implementamos el siguiente código:
package javaapplication1;
public class Main {
public static void main(String[] args) {
ClienteEJB cliente = new ClienteEJB();
Suscribirse a:
Entradas (Atom)