[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: [reverbel-sma] ORBSingleton: access denied



Olá Cabral.

On 10/20/06, Cleiton Cabral <ccabrals@xxxxxxxxxx> wrote:
No meu JavaIIOPInvokerProxy, ao fazer a chamada CORBA para o lado servidor,
estou tentando executar string_to_object como abaixo:

ORB orb = ORB.init();
org.omg.CORBA.Object obj = orb.string_to_object(this.iorReference);

E o seguinte erro ocorre ao executar "string_to_object":

java.lang.SecurityException: ORBSingleton: access denied
 at com.sun.corba.se.impl.orb.ORBSingleton.string_to_object(Unknown Source)
 at
org.jboss.invocation.javaiiop.interfaces.JavaIIOPInvokerProxy.invoke(JavaIIOPInvokerProxy.java:71)
 at
org.jboss.invocation.javaiiop.interfaces.JavaIIOPInvokerProxy.invoke(JavaIIOPInvokerProxy.java:1)
 at
org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:331)
 at
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:194)
 at
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)After
casting!
 at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
 at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:184)
 at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
 at $Proxy0.create(Unknown Source)
 at ep2.client.TestClient.main(TestClient.java:33)
Acho que o problema é o método ORB.init(), sem parâmetros, que você
está chamando. Veja uma parte da descrição desse método na classe
org.omg.CORBA.ORB:

"This no-argument version of the method <code>init</code> is used primarily
as a factory for <code>TypeCode</code> objects, which are used by
<code>Helper</code> classes to implement the method <code>type</code>.
It is also used to create <code>Any</code> objects that are used to
describe <code>union</code> labels (as part of creating a <code>
TypeCode</code> object for a <code>union</code>).
...
If an ORB is created using this method from an applet,
a system exception will be thrown if
methods other than those for
creating <code>TypeCode</code> objects are invoked."

Agora veja a implementação do método
com.sun.corba.se.impl.orb.ORBSingleton.string_to_object() que seu
invoker chama:

   public org.omg.CORBA.Object string_to_object(String s) {
	throw new SecurityException("ORBSingleton: access denied");
   }

Acho que a mensagem poderia ser um pouco melhor que "access denied"
:-). A instância de ORB retornada por ORB.init(), sem parâmetros,
serve apenas para criar TypeCodes e Anys. Para obter uma instância de
ORB "completa", execute:

ORB.init((String[]) null, null);

Bom trabalho!


Alguma dica??

Cabral.





--
Ivan Neto