EJB Remotamente?

2 respostas
M

Pessoal,
Estou acessando os ejbs remotamente da seguinte forma:
java -Dorg.omg.CORBA.ORBInitialHost:myserver -classpath “$CLASSPATH” classeCliente
Funciona normalmente.
Teria outra forma de estar acessando os ejbs em outras máquinas sem usar esse argumento ?

Tentei:

Hashtable env = new Hashtable();

env.put( Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.cosnaming.CNCtxFactory );

env.put( Context.PROVIDER_URL, iiop://myserver:1050 )

try {

Context jndi = new InitialContext( env );



}

catch( Exception e ) {}

mas não funcionou.

Alguém teria uma sugestão ?

obrigado.

mindu

2 Respostas

E

creio q copiando as interfaces remotas e pegando a referencia vc consegue.

ex:

Context ctx = new InitialContext();
Object ref = ctx.lookup( "ejb_MeuEJB" );
MeuEJB interfaceRemota = (MeuEJB)PortableRemoteObject.narrow( ref, MeuEJBHome.class );

onde:
MeuEBJ é uma inteface remota
MeuEJBHome é a interface Home
e
ejb_MeuEJB é o nome do EJB no descritor

M

Pessoal,
Tentei também:

Properties properties = new Properties();
		properties.put("java.naming.factory.initial", "com.sun.jndi.cosnaming.CNCtxFactory");
		properties.put("java.naming.provider.url", "iiop://192.168.0.71:1050");
		Context initial = new InitialContext(properties);

nos dois jeitos os erros são muito parecidos:

org.omg.CORBA.UNKNOWN:   vmcid: SUN  minor code: 202 completed: Maybe

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)

at java.lang.Class.newInstance0(Class.java:306)

at java.lang.Class.newInstance(Class.java:259)

at com.sun.corba.se.internal.iiop.messages.ReplyMessage_1_0.getSystemException(ReplyMessage_1_0.java:87)

at com.sun.corba.se.internal.iiop.ClientResponseImpl.getSystemException(ClientResponseImpl.java:105)

at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:314)

at com.sun.corba.se.internal.corba.InitialNamingClient.resolve(InitialNamingClient.java:1117)

at com.sun.corba.se.internal.corba.InitialNamingClient.resolveUsingBootstrapProtocol(InitialNamingClient.java:788)

at com.sun.corba.se.internal.corba.InitialNamingClient.cachedInitialReferences(InitialNamingClient.java:1186)

at com.sun.corba.se.internal.corba.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:1079)

at com.sun.corba.se.internal.corba.ORB.resolve_initial_references(ORB.java:2436)

at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:340)

at com.sun.jndi.cosnaming.CNCtx.initUsingIiopUrl(CNCtx.java:289)

at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:245)

at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:209)

at com.sun.jndi.cosnaming.CNCtx.(CNCtx.java:69)

at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:32)

at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)

at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)

at javax.naming.InitialContext.init(InitialContext.java:219)

at javax.naming.InitialContext.(InitialContext.java:195)
Criado 22 de maio de 2003
Ultima resposta 22 de mai. de 2003
Respostas 2
Participantes 2