Thread View: es.comp.lenguajes.java
1 messages
1 total messages
Started by mrejagui
Tue, 06 Mar 2007 10:01
Aplicacion cliente EJB
Author: mrejagui
Date: Tue, 06 Mar 2007 10:01
Date: Tue, 06 Mar 2007 10:01
166 lines
6904 bytes
6904 bytes
Hola:
Estoy desarrollando un proyecto Java mediante NetBeans 5.0 con EJB y
Sun Application Server 9.
(El servidor, la máquina de desarrollo y el cliente Java está en la
misma máquina)
He conseguido implementar en el servidor un EJB de Sesión al cual
puedo acceder desde PHP sin ningún problema.
Mi problema está en que aplicando el mismo código para la página PHP
que accede con éxito al EJB de sesión (adaptado para una aplicación
Java standalone) , no consigo conectar con el EJB desde una aplicación
Java de consola (.JAR). Obtengo el siguiente error (parece un problema
de Stubs):
C:\> appclient -client aplicacionC.jar
Obtener contexto
Localizar EJB
Instanciar objeto
class com.sun.corba.se.impl.corba.CORBAObjectImpl
06-mar-2007 10:53:01 com.sun.corba.ee.impl.util.Utility loadStub
ADVERTENCIA: "IOP01211405: (BAD_OPERATION) Exception in loadStub"
org.omg.CORBA.BAD_OPERATION: vmcid: SUN minor code: 1405
completed: No
at
com.sun.corba.ee.impl.logging.UtilSystemException.exceptionInLoadStub
(UtilSystemException.java:185)
at
com.sun.corba.ee.impl.logging.UtilSystemException.exceptionInLoadStub
(UtilSystemException.java:203)
at com.sun.corba.ee.impl.util.Utility.loadStub(Utility.java:
828)
at
com.sun.corba.ee.impl.javax.rmi.PortableRemoteObject.narrow(PortableR
emoteObject.java:219)
at
javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
at PAQ.Main.main(Main.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:23
2)
at
com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithMod
uleSupport.java:329)
at com.sun.enterprise.appclient.Main.main(Main.java:180)
Caused by: org.omg.CORBA.BAD_OPERATION: vmcid: SUN minor code: 234
completed:
Maybe
at
com.sun.corba.ee.impl.logging.ORBUtilSystemException.classNotFound2(O
RBUtilSystemException.java:763)
at
com.sun.corba.ee.impl.presentation.rmi.StubFactoryFactoryStaticImpl.c
reateStubFactory(StubFactoryFactoryStaticImpl.java:76)
at com.sun.corba.ee.impl.util.Utility.loadStub(Utility.java:
821)
... 10 more
Caused by: java.lang.ClassNotFoundException:
org.omg.stub.Aplic._EJBRemoteHome_S
tub
at
com.sun.enterprise.loader.EJBClassLoader.findClassData(EJBClassLoader
.java:674)
at
com.sun.enterprise.loader.EJBClassLoader.findClass(EJBClassLoader.jav
a:595)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at
com.sun.corba.ee.impl.util.JDKBridge.loadClass(JDKBridge.java:75)
at
com.sun.corba.ee.impl.javax.rmi.CORBA.Util.loadClass(Util.java:620)
at
com.sun.corba.ee.impl.presentation.rmi.StubFactoryFactoryStaticImpl.c
reateStubFactory(StubFactoryFactoryStaticImpl.java:73)
... 11 more
Crear objeto
java.lang.NullPointerException
at PAQ.Main.main(Main.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:23
2)
at
com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithMod
uleSupport.java:329)
at com.sun.enterprise.appclient.Main.main(Main.java:180)
=========================================================
El codigo correspondiente al programa Java que hace de cliente:
package PACK;
import javax.naming.*;
import java.util.*;
import javax.rmi.*;
import Aplic.*;
public class Main {
public static void main(String[] args) {
try {
System.out.println("Obtener contexto");
Context jndiContext = getInitialContext();
System.out.println("Localizar EJB");
Object ref = jndiContext.lookup("ejb/EJBBean");
System.out.println("Instanciar objeto");
Aplic.EJBRemoteHome home = (Aplic.EJBRemoteHome)
PortableRemoteObject.narrow(ref, Aplic.EJBRemoteHome.class);
System.out.println("Crear objeto");
Aplic.EJBRemote sal = home.create();
System.out.println("Voy a llamar al bean");
System.out.println(sal.businessMethod());
System.out.println("Ya he llamado al bean");
sal.remove();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Context getInitialContext() throws
javax.naming.NamingException {
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.cosnaming.CNCtxFactory");
p.put(Context.PROVIDER_URL, "iiop://localhost:1583");
return new javax.naming.InitialContext(p);
}
}
=========================================================
¿Alguna pista del por que no puedo conectar desde la aplicación Java
de cliente y no desde la aplicación web?
Gracias
Miguel
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads