Despliegue de EJB en Jonas
Hola a Todos!
se me presenta la siguiente situacion.
He creado un EBJ que tiene un metodo llamado sayHello y que saluda con "hola mundo"
lo despliego en el servidor Jonas v4.6.6 desde la interfaz web y luego creo la aplicacion cliente y le agrego el archivo jar generado por el server. el codigo del cliente es este:
package test.hello;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
import bean.example.*;
public class TestHello {
public static void main(String[] args) {
Properties env = new Properties();
env.setProperty("java.naming.factory.initial","com.sun.jndi.rmi.registry.RegistryContextFactory");
env.setProperty("java.naming.provider.url","rmi://localhost:1099");
env.setProperty("java.naming.factory.url.pkgs","org.objectweb.jonas.naming");
try{
Context ctx = new InitialContext(env);
NamingEnumeration list = ctx.list("");
while (list.hasMore()) {
NameClassPair nc = (NameClassPair)list.next();
System.out.println(nc);
}
Object obj = ctx.lookup("HelloHome");
//HelloHome helloHome = (HelloHome) javax.rmi.PortableRemoteObject.narrow(obj, HelloHome.class);
//Hello hi = helloHome.create();
//System.out.println("Hi men! : " + hi.sayHello());
//hi.remove();
}
catch(Exception e){
e.printStackTrace();
}
}
}
como ven, listo los recursos que tengo disponible en el server y al ejercutar me sale:
EarOpHome: java.lang.Object
JQCF: java.lang.Object
RMIConnector_jonas: java.lang.Object
"ejb/mgmt/MEJB": java.lang.Object
jonas_Adm: java.lang.Object
HelloHome: java.lang.Object
.
.
Como ven HelloHome esta disponible, y al hacer el
Object obj = ctx.lookup("HelloHome");
me arroja la siguiente excepcion:
javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.StreamCorruptedException]
at com.sun.jndi.rmi.registry.RegistryContext.lookup(Unknown Source)
at com.sun.jndi.rmi.registry.RegistryContext.lookup(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at test.hello.TestHello.main(TestHello.java:35)
Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.StreamCorruptedException
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
... 4 more
Caused by: java.io.StreamCorruptedException
at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.refill(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.skipBlockData(Unknown Source)
at java.io.ObjectInputStream.skipCustomData(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
... 5 more
he intentado con "java/env" y todas las combinaciones posibles. Busque por la web y lei en algun foro que podria ser un problema de serializacion y deserializacion, pero realmente no encuentro la solucion.
¿alguna ayuda?
se me presenta la siguiente situacion.
He creado un EBJ que tiene un metodo llamado sayHello y que saluda con "hola mundo"
lo despliego en el servidor Jonas v4.6.6 desde la interfaz web y luego creo la aplicacion cliente y le agrego el archivo jar generado por el server. el codigo del cliente es este:
package test.hello;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
import bean.example.*;
public class TestHello {
public static void main(String[] args) {
Properties env = new Properties();
env.setProperty("java.naming.factory.initial","com.sun.jndi.rmi.registry.RegistryContextFactory");
env.setProperty("java.naming.provider.url","rmi://localhost:1099");
env.setProperty("java.naming.factory.url.pkgs","org.objectweb.jonas.naming");
try{
Context ctx = new InitialContext(env);
NamingEnumeration list = ctx.list("");
while (list.hasMore()) {
NameClassPair nc = (NameClassPair)list.next();
System.out.println(nc);
}
Object obj = ctx.lookup("HelloHome");
//HelloHome helloHome = (HelloHome) javax.rmi.PortableRemoteObject.narrow(obj, HelloHome.class);
//Hello hi = helloHome.create();
//System.out.println("Hi men! : " + hi.sayHello());
//hi.remove();
}
catch(Exception e){
e.printStackTrace();
}
}
}
como ven, listo los recursos que tengo disponible en el server y al ejercutar me sale:
EarOpHome: java.lang.Object
JQCF: java.lang.Object
RMIConnector_jonas: java.lang.Object
"ejb/mgmt/MEJB": java.lang.Object
jonas_Adm: java.lang.Object
HelloHome: java.lang.Object
.
.
Como ven HelloHome esta disponible, y al hacer el
Object obj = ctx.lookup("HelloHome");
me arroja la siguiente excepcion:
javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.StreamCorruptedException]
at com.sun.jndi.rmi.registry.RegistryContext.lookup(Unknown Source)
at com.sun.jndi.rmi.registry.RegistryContext.lookup(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at test.hello.TestHello.main(TestHello.java:35)
Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.StreamCorruptedException
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
... 4 more
Caused by: java.io.StreamCorruptedException
at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.refill(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.skipBlockData(Unknown Source)
at java.io.ObjectInputStream.skipCustomData(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
... 5 more
he intentado con "java/env" y todas las combinaciones posibles. Busque por la web y lei en algun foro que podria ser un problema de serializacion y deserializacion, pero realmente no encuentro la solucion.
¿alguna ayuda?