dev@glassfish.java.net

Re: Error on calling EJB two times...

From: Cheng Fang <Cheng.Fang_at_Sun.COM>
Date: Wed, 20 Sep 2006 16:05:10 -0400

I'm surprised to see TransactionRequiredLocalException, since you are
not using TransactionAttributeType.MANDATORY anywhere.

One unusual place in your app is bean2.methodTwo() is calling another
business method inside the bean class. But that shouldn't cause
TransactionRequiredLocalException.

If you deploy projectA and projectB separately, you need to map the
ejb-ref with mappedName or sun-ejb-jar.xml <ejb-ref>:
@EJB(mappedName="tests.interfaces.myEjbOneRemote")
private myEjbOneRemote userBean;

I tried similar samples on glassfish nightly but couldn't reproduce it.
Can you attach your ejb jars with all source code and descriptors?

Cheng




Dyego Souza Dantas Leal wrote:

> @Stateless
> @TransactionManagement(TransactionManagementType.CONTAINER)
> @TransactionAttribute(TransactionAttributeType.REQUIRED)
> public class ....
>
>
>
> Cheng Fang escreveu:
>
>> What are the transaction attributes for the business methods of the 2
>> beans, defined in either annotations or descriptors? Please also
>> provide the business interfaces.
>>
>> Cheng
>>
>>
>>
>>
>> Dyego Souza Dantas Leal wrote:
>>
>>>
>>> I have this cenario:
>>>
>>> Project A with EJB called myEjbOne with method
>>>
>>> public User getUser(int userid);
>>>
>>>
>>> and Project B with EJB called myEjbOnProjectTwo with methods...
>>>
>>>
>>> @Stateless
>>> public class myEjbOnProjectTwo ....
>>>
>>> @EJB()
>>> private myEjbOneRemote userBean;
>>>
>>> private User getUser(int id) {
>>> try {
>>> return userBean.getUser(id);
>>> } catch (Exception e) {
>>> e.printStacktrace();
>>> }
>>> }
>>>
>>> public methodOne() {
>>> User a = getUser(12);
>>> }
>>>
>>>
>>> public void methodTwo() {
>>> methodOne();
>>> User a = getUser(12);
>>>
>>> }
>>>
>>> }
>>>
>>>
>>> On call myEjbOnProjectTwo.methodTwo() i got this error:
>>>
>>>
>>> [#|2006-09-20T13:39:50.086-0300|INFO|sun-appserver-pe9.1|javax.enterprise.system.container.ejb|_ThreadID=28;_ThreadName=p:
>>> thread-pool-1; w: 8;UsuarioSessionBean;|EJB5018: An exception was
>>> thrown during an ejb invocation on [myEjbOne]|#]
>>>
>>> [#|2006-09-20T13:39:50.086-0300|INFO|sun-appserver-pe9.1|javax.enterprise.system.container.ejb|_ThreadID=28;_ThreadName=p:
>>> thread-pool-1; w: 8;|
>>> javax.ejb.TransactionRequiredLocalException
>>> at
>>> com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:3126)
>>>
>>> at
>>> com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1158)
>>> at
>>> com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:189)
>>>
>>> at
>>> com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:67)
>>>
>>> at $Proxy128.get(Unknown Source)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:121)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:650)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:193)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1705)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:154)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:194)
>>>
>>> at
>>> com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:159)
>>>
>>> at
>>> com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:119)
>>>
>>> at
>>> com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:197)
>>>
>>> at
>>> tests.interfaces.__myEjbOneRemote_Remote_DynamicStub.get(__myEjbOneRemote_Remote_DynamicStub.java)
>>>
>>> at
>>> tests.interfaces._myEjbOneRemote_Wrapper.get(tests.interfaces._myEjbOneRemote_Wrapper.java)
>>>
>>> at tests.myEjbOnProjectTwo.getUser(myEjbOnProjectTwo.java:84)
>>> at tests.myEjbOnProjectTwo.methodTwo(myEjbOnProjectTwo.java:199)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1050)
>>>
>>> at
>>> com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:165)
>>> at
>>> com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2766)
>>>
>>> at
>>> com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3847)
>>> at
>>> com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:190)
>>>
>>> at
>>> com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:67)
>>>
>>> at $Proxy150.add(Unknown Source)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:585)
>>> at
>>> com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:121)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:650)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:193)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1705)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1565)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:947)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:178)
>>>
>>> at
>>> com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:717)
>>>
>>> at
>>> com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:473)
>>>
>>> at
>>> com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.read(SocketOrChannelConnectionImpl.java:300)
>>>
>>> at
>>> com.sun.corba.ee.impl.transport.ReaderThreadImpl.doWork(ReaderThreadImpl.java:73)
>>>
>>> at
>>> com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:479)
>>>
>>> |#]
>>>
>>>
>>>
>>> User.java is a EntityBean
>>>
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>
>>
>
>