偶尔出现 javax.ejb.AccessLocalException
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论