偶尔出现 javax.ejb.AccessLocalException

发布于 2024-10-02 11:02:58 字数 1370 浏览 0 评论 0原文

我正在使用 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 方法都会导致相同的错误。解决此问题的唯一方法是取消部署应用程序,然后重新部署。谁能告诉我发生了什么事吗?

I'm using Glassfish 3.0.1. I sometimes get this error when attempting to call a local 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% of the time, everything works fine. But when it happens, then every attempt to call that EJB method results in the same error. The only way to fix it is to undeploy the application, and deploy again. Can anybody tell me what's going on?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文