Alguem sabe a real funcao do .narrow na hora de recuperar a interface home remota ? prq tipo… funciona tanto com ele tanto sem ele…
Qual a real utilidade dele ? li no manual q ele “apenas garante que um tipo pode ser convertuido em outro” , poxa… mas se nao puder ser convertido ele dah um Exception… e se vc tirar o narrow e chamar direto tmb da exception…
Logo… seria a mesma coisa q dar um select antes pra ver se o registro existe e depois dar um delete… DAH NA MESMA dar o delete direto… e pouca uma chamada ao banco… ( mantendo as devidas proporcoes eh claro )
Alguem sabe me explicar o prq devo usar essa coisa ?
Olá, .narrow serve basicamente para “estreitar” um objeto, pois quando se trabalha com objetos remotos vc não consegue fazer Casting diretamente, por isso existe esta função.
abraços.
chun
Nao entendi bem o que vc disse com “estreitar” , e prq funciona se vc nao fizer narrow ?
oandrade:
Olá, .narrow serve basicamente para “estreitar” um objeto, pois quando se trabalha com objetos remotos vc não consegue fazer Casting diretamente, por isso existe esta função.
abraços.
O
oandrade
Olá novamente,
Seguinte, A especificação diz para vc sempre utilizar o Narrow, pode ser que funcione sem, mas seu codigo não seria independente do vendor, principalmente quando utilizamos o JBoss(3.xxx) e ainda mais se a flag para verificar compatibilidade com especificação(strict verifier) etiver desligada.
A Interface Remota e a HOME implementam java.rmi.Remote. Portanto as chamadas para esta interface serão remotas, e como a maioria dos containers utilizam IIOP como protocolo de comunicação, temos que utilizar o narrow para conseguir fazer o Casting.
Se não me engano na versão 1.1 do EJB vc era obrigado a sempre utilizar o narrow para fazer o casting, na 2.0 não, porém vai depender do container que estiver utilizando.