Я использую 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 приводит к одной и той же ошибке.Единственный способ исправить это - отменить развертывание приложения и выполнить повторное развертывание.Кто-нибудь может сказать мне, что происходит?