Спорадический javax.ejb.AccessLocalException - PullRequest
2 голосов
/ 11 ноября 2010

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

...