Evo probao sam opet sa ovim tvojim sorsom. (Doduše uz malu izmenu, nije mi šljakalo sa aliasom name="SessionEJB", pa sam lukapovao string "SessionEJBBean/remote", al pretpostavljam da to nema veze sa ovom pričom.)
Elem, ponovo dobijam java.lang.IllegalStateException. Evo stack trace-a iz klijentske konzole :
javax.ejb.EJBException: java.lang.IllegalStateException
at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
... (ovo dalje nas pretpostavljam ne zanima)
...
Caused by: java.lang.IllegalStateException
at org.jboss.ejb3.BaseSessionContext.getCallerPrincipal(BaseSessionContext.java:168)
at com.tagws.core.dbbroker.SessionEJBBean.radi(SessionEJBBean.java:15)
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 org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:109)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:192)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:54)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:219)
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:107)
at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:660)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:513)
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:290)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:344)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:202)
at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:183)
at org.jboss.remoting.Client.invoke(Client.java:444)
at org.jboss.remoting.Client.invoke(Client.java:407)
at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:41)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:46)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:40)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:65)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
at $Proxy0.radi(Unknown Source)
at GenTester.main(GenTester.java:14)
DetailMessage tog exceptiona je null :-(.
Kao što rekoh juče, o metodi getCallerPrincipal sam iskopao samo da
The Container throws the exception if the instance is not allowed to call this method.
Operator new koristim unutar servera zato što nemam potrebu za lookupom, a verujem da je ovako brže. Tu @EJB anotaciju sam prvi put video juče i možda ću je i koristiti umesto new. A i dalje ne kapiram da je
greška konstruisati ejb kao da je običan pojo kad ga koristiš u lokalu (unutar servera). Al to je već neka druga priča.
it works on my machine