Olá, boa tarde.
Estou apanhando um bocado para fazer o acesso local de um session bean a um entity bean.
A partir de uma app de testes, consigo acessar o session bean tranquilamente.
O problema é que, de dentro do session bean, só consigo referência à interface remota do entity bean, mas não à local.
No meu session bean, faço o seguinte:
Properties prop = new Properties();
prop.put( Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory" );
prop.put( Context.PROVIDER_URL, "localhost:1099" );
try
{
Context ctx = new InitialContext( prop );
Object ref = ctx.lookup( "CustomerBean" );
System.out.println( ref.toString() );
CustomerLocalHome customerHome = ( CustomerLocalHome ) ref;
...
No log do Jboss, o meu System.out imprime
[STDOUT] CustomerBeanHome
E o ClassCastException se dá na linha seguinte, quando tento transformar uma referencia ao objeto CustomerBeanHome em CustomerLocalHome.
No jar com todos os ejbs, o ejb-jar.xml está assim:
<session>
<ejb-name>CustomerSessionBean</ejb-name>
<jndi-name>CustomerSessionBean</jndi-name>
<home>customer.customersession.CustomerSessionHome</home>
<remote>customer.customersession.CustomerSession</remote>
<ejb-class>customer.customersession.CustomerSessionBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-link>
<ejb-link-name>CustomerBean</ejb-link-name>
<ejb-link-type>Entity</ejb-link-type>
<local-home>customer.customerbmp.CustomerLocalHome</local-home>
<local>customer.customerbmp.CustomerLocal</local>
<ejb-link>customer.customerbmp.CustomerBean</ejb-link>
</ejb-local-link>
</session>
<entity>
<ejb-name>CustomerBean</ejb-name>
<jndi-name>CustomerBean</jndi-name>
<home>customer.customerbmp.CustomerHome</home>
<remote>customer.customerbmp.Customer</remote>
<local-home>customer.customerbmp.CustomerLocalHome</local-home>
<local>customer.customerbmp.CustomerLocal</local>
<ejb-class>customer.customerbmp.CustomerBean</ejb-class>
...
Só para frisar, se mudo minhas referencias todas aos objetos remotos, tudo funciona perfeitamente.
Alguém pode me ajudar?
Valeu!

