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

Re: Criacao de Poa Persistente.



Oi Andrei,

Respondo com cópia para a lista pois isto pode interessar a mais gente.

Para criar um POA persistente o JacORB requer a definição de um implname
(um "nome do servidor"), o qual será incluído nas IORs geradas pelo POA
persistente. A propriedade jacorb.implname define esse nome.

Ponha no jacorb.properties uma linha

   jacorb.implname=NomeDoMeuServidor

ou passe na linha de comando um argumento

  -Djacorb.implname=NomeDoMeuServidor

ou ponha na Hashtable passada a ORB.init() uma associação entre a
String "jacorb.implname" (chave) e a String "NomeDoMeuServidor" (valor).

Reverbel

PS: Além de especificar a política PERSISTENT na criação do POA, você 
    provavelmente vai querer especificar também a política USER_ID:

     LifespanPolicy lifespanPolicy = 
        poa.create_lifespan_policy(LifespanPolicyValue.PERSISTENT);
     IdAssignmentPolicy idAssignmentPolicy = 
        poa.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID);

     irPoa = poa.create_POA("MeuPOA", null,
                            new Policy[]{lifespanPolicy, 
                                         idAssignmentPolicy});


On Mon, 21 Oct 2002, Andrei Goldchleger wrote:

> 
> Ola professor,
> 
> Fiz as alteracoes quecomentamos na aula(usar o Jacoprb + eliminar o
> iiop-service.xml). Entretanto, agora estou tomando o seguinte erro:
> 
>  cannot create a persistent poa! (implname property is not used)
> 
> ....
> 
> at
> org.jboss.invocation.javaiiop.server.JavaIIOPInvoker.startService(JavaIIOPInvoker.java:105
> 
> Abaixo segue o trecho de codigo que eu estou usando:
> 
> 
> org.omg.PortableServer.POA rootPOA =
>         org.omg.PortableServer.POAHelper.narrow
>         (orb.resolve_initial_references("RootPOA"));
>        rootPOA.the_POAManager().activate();
>        org.omg.CORBA.Policy [] p = new org.omg.CORBA.Policy[1];
>        p[0] = rootPOA.create_lifespan_policy
>        (org.omg.PortableServer.LifespanPolicyValue.PERSISTENT);
>        org.omg.PortableServer.POA poa =
>     >>>>>>>>      rootPOA.create_POA("childPOA",null,p);
>        org.omg.CORBA.Object o =
>         poa.servant_to_reference(new InvokerPOATie(this));
>        poa.the_POAManager().activate();
>        invokerIOR = orb.object_to_string(o);
> 
> 
> O erro esta na linha marcada por '>>>>>>'. Infelizmente esta dificil achar
> referencias de como fazer isso direito, e a lista do jacORB, que tinha um
> exemplo, esta fora do ar.
> 
> O que eu estou fazendo de errado?
> 
>