Hola, tengo que hacer un JavaBean que debe aplicarme y mostrarme algunas funciones de cadena. Estoy utilizando el JBoss.
Aquí va el código:
ejbServer : Cadena.java
Código:
package com.glopez.ejb.funciones;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Cadena extends EJBObject {
public String invertirCadena(String cadena) throws RemoteException;
public int NroLetras(String cadena) throws RemoteException;
public String Mayusculas(String cadena) throws RemoteException;
public String Minusculas(String cadena) throws RemoteException;
}
**CadenaBean.java ***
Código:
package com.glopez.ejb.funciones;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class CadenaBean implements SessionBean {
// Muestra cadenaInvertida
public static String cadenaInvertida(String cadena) {
int i, len = cadena.length();
StringBuffer dest = new StringBuffer(len);
for (i = (len - 1); i >= 0; i--) {
dest.append(cadena.charAt(i));
}
return dest.toString();
}
// Longitud de la cadena
public int NroLetras(String cadena) {
int s = cadena.length();
return s;
}
// convertir a mayusculas
public String Mayusculas(String cadena) {
String s = cadena.toUpperCase();
return s;
}
// convertir a minusculas
public String Minusculas(String cadena) {
String s = cadena.toLowerCase();
return s;
}
public CadenaBean() {}
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbPassivate() {}
public void ejbActivate() {}
public void setSessionContext(SessionContext sc) {}
}
Sigo con el
*** CadeHome.java ****
Código:
package com.glopez.ejb.funciones;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
public interface CadenaHome extends EJBHome {
Cadena create() throws RemoteException, CreateException;
}
y por ultimo mi cadenaCliente.jsp es :
Código:
<%@ page import="java.util.Properties, javax.rmi.PortableRemoteObject, java.rmi.RemoteException, javax.naming.*, javax.ejb.*" %>
<%@ page import="com.glopez.ejb.funciones.Cadena, com.glopez.ejb.funciones.CadenaHome" %>
<html>
<head><title>EJB por Gabriela López</title></head>
<body>
<center>
<br><br>
<%
Properties env = new Properties();
// Definir las propiededas y ubicación de búsqueda de Nombres JNDI.
env.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
env.setProperty("java.naming.provider.url", "localhost:1099");
env.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
try { // Traer el Contexto de Nombre
InitialContext jndiContext = new InitialContext(env);
out.println("Contexto Disponible<br>");
// Traer la Referencia del EJB
Object ref = jndiContext.lookup("Calculo");
out.println("Se encontró Referencia del EJB!<br>");
// Traer la referencia del "Home Interface"
CadenaHome home = (CadenaHome) PortableRemoteObject.narrow (ref, CadenaHome.class);
out.println("Se encontró Referencia de CadenaHome!<br>");
// Crear un Objeto a partir del "Home Interface"
Cadena pepe = home.create();
// Llamar a los métodos
String x="Cibertec";
String invCad = pepe.invertirCadena(x);
String nroLet = pepe.NroLetras(x);
String cadMay = pepe.Mayusculas(x);
String cadMin = pepe.Minusculas(x);
out.println("La cadena invertida es : " + invCad);
out.println("La cadena tiene : " + nroLet + " letras");
out.println("La cadena en Mayúsculas es :" + cadMay);
out.println("La cadena en Minúsculas es :" + cadMin);
} catch (RemoteException e) {
out.println("<br>" + e.toString());
} catch (CreateException e) {
out.println("<br>" + e.toString());
} catch (NamingException e) {
out.println("<br>" + e.toString());
} catch(Exception e) {
out.println("<br>" + e.toString());
}
%>
</body>
</html>
Alguien me puede decir en qué estoy mal??
Ya me tiene loca esto