[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: Criacao de Poa Persistente.
- Subject: Re: Criacao de Poa Persistente.
- From: Francisco Reverbel <reverbel at ime.usp.br>
- Date: Mon, 21 Oct 2002 17:57:10 -0300 (EST)
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?
>
>