Download Creación de una aplicación para JBOSS

Document related concepts
no text concepts found
Transcript
Creación de una aplicación para JBOSS
Requerimientos:
Se debe instalar JBOSS junto con Tomcat, JBuilder 5 Personal y MagicDraw
UML 5.0 beta con la conexión a JBuilder.
JBOSS con Tomcat se puede bajar de SourceForge.net, JBuilder 5 Personal
está en Borland.com y MagicDraw se consigue en www.MagicDraw.com.
Primer paso:
Se crea el siguiente diagrama en MagicDraw.
Interest
+calculateCompoundInterest( principle : double, rate : double, periods : double ) : double
+ejbCreate()
SessionBean
InterestRemote
+calculateCompoundInterest( principle : double, rate : double, periods : double ) : double
EJBObject
InterestHome
+create() : InterestRemote
EJBHome
Esto se puede hacer creando únicamente la clase Interest con sus métodos
respectivos, para aplicarle el patrón Java-EJB.
Segundo paso:
Se genera el código esqueleto en Java en JBuilder desde MagicDraw.
© 2001, Braulio José Solano Rojas
Página 1 de 6
Tercer paso:
Hay que agregar algunos “import” y métodos “vacíos” manualmente ya que
el diseño de las relaciones del patrón de MagicDraw no es perfecto.
Además se agrega el código del método calculateCompoundInterest.
Los archivos deben quedar como sigue:
Interest.java
package interest;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class Interest implements SessionBean{
public void ejbCreate() {
}
public double calculateCompoundInterest(double principle, double rate, double
periods) {
System.out.println("Someone called `calculateCompoundInterest!'");
return principle * Math.pow(1+rate, periods) - principle;
}
public void ejbPostCreate() {
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext sc) {
}
}
InterestHome.java
package interest;
import java.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
public interface InterestHome extends EJBHome{
© 2001, Braulio José Solano Rojas
Página 2 de 6
public
InterestRemote
javax.ejb.CreateException;
}
create()
throws
java.rmi.RemoteException,
InterestRemote.java
package interest;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface InterestRemote extends EJBObject{
public double calculateCompoundInterest(double principle, double rate, double
periods) throws java.rmi.RemoteException;
}
Cuarto paso:
JBuilder crea un directorio jbproject en el cual guarda los diferentes
proyectos. En este directorio se encuentra el proyecto Interest, el cual es a su vez
un directorio. Dentro de él se encuentran tres directorios: bak, classes y src. src
contiene los archivos creados anteriormente.
Se debe hacer un “make” en JBuilder, con lo que se crean Interest.class,
InterestHome.class e InterestRemote.class en el directorio classes dentro de un
subdirectorio llamado interest (este es el “package”).
Quinto paso:
Se debe crear un directorio (llamado META-INF) junto con el directorio
interest que se encuentra en classes. Adentro del directorio classes, por lo tanto
debe haber dos directorios: interest y META-INF.
Sexto paso:
Se debe crear dos archivos dentro de META-INF: ejb-jar.xml y jboss.xml.
Su contenido debe ser lo siguiente (de acuerdo con los archivos java):
ejb-jar.xml
<?xml version="1.0" encoding="Cp1252"?>
© 2001, Braulio José Solano Rojas
Página 3 de 6
<ejb-jar>
<description>Interest Sample Application</description>
<display-name>Interest EJB</display-name>
<enterprise-beans>
<session>
<display-name>Interest EJB</display-name>
<ejb-name>Interest</ejb-name>
<home>interest.InterestHome</home>
<remote>interest.InterestRemote</remote>
<ejb-class>interest.Interest</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
jboss.xml
<?xml version="1.0" encoding="Cp1252"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>Interest</ejb-name>
<jndi-name>interest/Interest</jndi-name>
</session>
</enterprise-beans>
</jboss>
Séptimo paso:
Se debe crear un “archivo” (paquete) con el directorio interest y el directorio
META-INF. Para crear el paquete se utiliza el programa jar que viene con JAVA. Y
con ello se crea un archivo llamado interest.jar que contiene todos los archivos de
interest y de META-INF.
Octavo paso:
Se debe copiar el archivo interest.jar dentro del subdirectorio de JBOSS
llamado deploy. La instalación se hace entonces automáticamente.
Noveno paso:
© 2001, Braulio José Solano Rojas
Página 4 de 6
Se debe crear una aplicación cliente (puede ser un programa JAVA o una
página web JAVA-jsp).
Se crea, por lo tanto, el archivo interest.jsp.
interest.jsp
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.rmi.PortableRemoteObject" %>
<%@ page import="interest.InterestRemote" %>
<%@ page import="interest.InterestHome" %>
<html>
<head>
<title>Ejemplo Interest EJB</title>
</head>
<body>
<%
try
{
InitialContext jndiContext = new InitialContext();
Object ref = jndiContext.lookup("interest/Interest");
InterestHome home = (InterestHome) PortableRemoteObject.narrow(ref,
InterestHome.class);
InterestRemote interest = home.create();
%>
Interest on 1000 units, at 10% per period, compounded over 2 periods is:
<%= interest.calculateCompoundInterest(1000, 0.10, 2) %>
<%
}
catch(Exception e)
{
out.print("<b>Error:</b> " + e.toString());
}
%>
</body>
</html>
© 2001, Braulio José Solano Rojas
Página 5 de 6
Se debe copiar los archivos InterestHome.class e InterestRemote.class al
directorio WEB-INF/classes de la aplicación en la que se encuentre el archivo
interest.jsp.
Décimo paso:
Correr la página interest.jsp en algún browser.
© 2001, Braulio José Solano Rojas
Página 6 de 6