我正在使用Glassfish 3.0.1。尝试调用本地EJB时,我有时会遇到此错误:
[#|2010-11-10T19:17:25.014+0000|INFO|glassfish3.0.1|javax.enterprise.system.core.security|
_ThreadID=26;_ThreadName=Thread-1;|JACC Policy Provider: Failed Permission Check,
context(myApplication/myWarModule-1_0-SNAPSHOT_war_internal)-
permission((javax.security.jacc.EJBMethodPermission MyEJB myMethod,Local,java.lang.Long))|#]
[#|2010-11-10T19:17:25.015+0000|WARNING|glassfish3.0.1|
javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=26;
_ThreadName=Thread-1;|A system exception occurred during an invocation on EJB
MyEJB method public void com.example.MyEJB.myMethod(java.lang.Long)
javax.ejb.AccessLocalException: Client not authorized for this invocation.
at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1850)
at com.sun.ejb.containers.EjbAsyncTask.call(EjbAsyncTask.java:95)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
99%的时间,一切正常。但是当它发生时,每次调用该EJB方法的尝试都会导致相同的错误。解决此问题的唯一方法是取消部署应用程序,然后再次部署。有谁能告诉我发生了什么事?