views:

16

answers:

0

I use Netbeans 6.9.1 and Glassfish 3.0.1. I have this model:

  • EnterpriseApplicationA contains EJBmoduleA and the BeanA that exposes a remote interface.
  • EnterpriseApplicationB contains EJBmoduleB and the BeanB.
  • The BeanB calls the BeanA using @EJB injection.

All is working, but if I made a trivial change in a business method of BeanA (without modifying remote interface) and I redeploy EnterpriseApplicationA, then only the FIRST call from BeanB to BeanA raise a corba error, but next calls are working again.

First call:

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: javax.ejb.NoSuchEJBException
at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:171)
....
Caused by: java.rmi.NoSuchObjectException: CORBA OBJECT_NOT_EXIST 1330446338 No; nested exception is:
...

Does that mean that the corba wire is broken on redeploy? Does that mean that I must redeploy on cascade through the call tree?

I found that if I use InitialContext.lookup("java:global:....") instead of @EJB injection, the CORBA error does not appear. So with explicit lookup you don't have to redeploy all the call tree. I would like @EJB injection works this way...