EJB (Enterprise Java Beans) - Aplicación cliente ejb remota.

 
Vista:

Aplicación cliente ejb remota.

Publicado por Don Alvaro (1 intervención) el 14/09/2005 19:57:02
Hola.
estoy evaluando la construcción de un sistema en J2EE con uso de EJB y hasta ahora entiendo gran parte de lo que el tutorial de J2EE propone, pero no me quda claro lo siguiente:

1.- Se supone que una aplicación cliente de EJB solo necesita conocer las interfaces del Bean y del Home.
¿ Quiere decir esto que yo puedo tener un .jar que solo contenga estas interfaces en el lado del cliente ?

2.- Quiero tener dos servidores. Uno con la lógica del negocio y capa de datos y uno con la paca de interfaz.
La interfaz será una aplicación Web programada con JSP. (En un servidor a parte)
Cuando en el código del JSP yo escriba este código:
<%
Context iniCtx = new InitialContext();
ClientHome cHome = (ClientHome)iniCtx.lookup("java:comp/env/ejb/ClientHome");
...
%>
ya se que en el archivo web.xml debe ir una seccion mas o menos así:

<ejb-ref>
<ejb-ref-name>ejb/ClientHome</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.miempresa.miapp.ClientHome</home>
<remote>com.miempresa.miapp.Client</remote>
<ejb-link>ClientEBJ</ejb-link>
</ejb-ref>

pero , y aca estan la preguntas
¿ Donde le digo al container que todo esto está en otro servidor ?
¿ Donde le digo al container el nombre del otro servidor ?
¿ Existe algun archivo wsdl o algo así ?

Gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Aplicación cliente ejb remota.

Publicado por LUIS (3 intervenciones) el 27/02/2007 02:31:54
Hola.
estoy evaluando la construcción de un sistema en J2EE con uso de EJB y hasta ahora entiendo gran parte de lo que el tutorial de J2EE propone, pero no me quda claro lo siguiente:

1.- Se supone que una aplicación cliente de EJB solo necesita conocer las interfaces del Bean y del Home.
¿ Quiere decir esto que yo puedo tener un .jar que solo contenga estas interfaces en el lado del cliente ?
RES: EXACTAMENTE SOLO QUE NECESITAS QUE TALES INTERFACES HAGAN REFERENCIA AL BEAN QUE TIENES DEPLOYADO EN TU SERVIDOR
2.- Quiero tener dos servidores. Uno con la lógica del negocio y capa de datos y uno con la paca de interfaz.
La interfaz será una aplicación Web programada con JSP. (En un servidor a parte)
Cuando en el código del JSP yo escriba este código:
<%
Context iniCtx = new InitialContext();
ClientHome cHome = (ClientHome)iniCtx.lookup("java:comp/env/ejb/ClientHome");
...
%>
YO LO PONGO EN EL jspInit() aqui un ejemplo:
<%--

Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.

This software is the proprietary information of Sun Microsystems, Inc.
Use is subject to license terms.

--%>
<%@ page import="com.wl.twapwl.Converter" %>
<%@ page import="com.wl.twapwl.ConverterHome" %>
<%@ page import="javax.ejb.*, java.math.*, javax.naming.*, javax.rmi.PortableRemoteObject, java.rmi.RemoteException" %>
<%!
private Converter converter = null;

public void jspInit() {
try {


InitialContext ic = new InitialContext();
System.out.println("got context");
Object objRef = ic.lookup("ConverterRemoteHome");
ConverterHome home = (ConverterHome)PortableRemoteObject.narrow(objRef, ConverterHome.class);
System.out.println("narrowed home");
converter = home.create();
System.out.println("got bean");
} catch (RemoteException ex) {
System.out.println("Couldn't create converter bean."+ ex.getMessage());
} catch (CreateException ex) {
System.out.println("Couldn't create converter bean."+ ex.getMessage());
} catch (NamingException ex) {
System.out.println("Unable to lookup home: "+ "TheConverter "+ ex.getMessage());
}
}

public void jspDestroy() {
converter = null;
}
%>
<html>
<head>
<title>Converter</title>
</head>

<body bgcolor="white">
<h1><b><center>Converter</center></b></h1>
<hr>
<p>Enter an amount to convert:</p>
<form method="get">
<input type="text" name="amount" size="25">
<br>
<p>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>

<%
String amount = request.getParameter("amount");
if ( amount != null && amount.length() > 0 ) {
BigDecimal d = new BigDecimal (amount);
%>
<p>
<%= amount %> dollars are <%= converter.dollarToYen(d) %> Yen.
<p>
<%= amount %> Yen are <%= converter.yenToEuro(d) %> Euro.
<%
}
%>

</body>
</html>

ya se que en el archivo web.xml debe ir una seccion mas o menos así:

<ejb-ref>
<ejb-ref-name>ejb/ClientHome</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.miempresa.miapp.ClientHome</home>
<remote>com.miempresa.miapp.Client</remote>
<ejb-link>ClientEBJ</ejb-link>
</ejb-ref>

pero , y aca estan la preguntas
¿ Donde le digo al container que todo esto está en otro servidor ?
¿ Donde le digo al container el nombre del otro servidor ?
¿ Existe algun archivo wsdl o algo así ?
RES: MIRA YO TRABAJO EN WEBLOGIC NO SE EN QUE SERVIDOR TU PERO EXISTEN HERRAMIENTAS QUE TE AYUDAN A GENERAR LOS DESCRIPRTORES DEL BEAN Y LOS FICHEROS WEB AUTOMATICAMENTE TE SUGIERO QUE VEAS ESTAS 2 LIGAS

http://e-docs.bea.com/wls/docs81/ejb/EJBGen_reference.html
http://edocs.bea.com/wls/docs81/medrec_tutorials/ejbgen.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar