- Projeto usando: EJB + Glashfish v3 + Netbeans 6.8
- Plataforma: WEB
- Tipo de projeto: EAR
Seguinte: tenho um SessionBean chamado GenericDAO, que é o único quem conhece os demais sessionbeans e, por eles, as camadas de persistência.
Precisei implementar um novo método no meu GenericDAO. Algo bem simples: recebe o tipo de objeto e faz uma busca específica no sessionbean correspondente.
Esse novo método foi criado porque nenhum outro método existente satisfazia minha situação.
O problema: quando tento acessar esse novo método do GenericDAO, o Glassfish diz que não tenho permissão. Simples assim.
Fiz um outro teste: criei mais um método que não fazia nada, só retornava 'null'. A mesma coisa.
Então, se eu uso os métodos já publicados, não dá problema.
Se preciso implementar um novo método, na hora da execução, dá o erro abaixo:
//na classe:
Cliente cc = (Cliente) dao.findTeste(); // que não faz anda, só retorna nulo.
//Erro:
INFO: JACC Policy Provider: Failed Permission Check, context(WebHostMgr_Project/WebHostMgr_Project-ejb_jar)- permission((javax.security.jacc.EJBMethodPermission GenericDAO findTeste,Local,))
WARNING: A system exception occurred during an invocation on EJB GenericDAO method public java.lang.Object sessionbeans.GenericDAO.findTeste()
javax.ejb.AccessLocalException: Client not authorized for this invocation.
at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1801)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:188)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84)
at $Proxy118.findTeste(Unknown Source)
at command.pages.PageClienteCommand.onExecute(PageClienteCommand.java:33)
at command.ForwardingCommand.execute(ForwardingCommand.java:23)
at servlets.Controller.processRequest(Controller.java:40)
at servlets.Controller.doGet(Controller.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
SEVERE: javax.ejb.EJBAccessException
at com.sun.ejb.containers.BaseContainer.mapLocal3xException(BaseContainer.java:2213)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2004)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1906)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:198)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84)
at $Proxy118.findTeste(Unknown Source)
at command.pages.PageClienteCommand.onExecute(PageClienteCommand.java:33)
at command.ForwardingCommand.execute(ForwardingCommand.java:23)
at servlets.Controller.processRequest(Controller.java:40)
at servlets.Controller.doGet(Controller.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.ejb.AccessLocalException: Client not authorized for this invocation.
at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1801)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:188)
... 32 more
Pergunta
berg.pb
Olá
Minha situação: tenho o seguinte painel:
- Projeto usando: EJB + Glashfish v3 + Netbeans 6.8
- Plataforma: WEB
- Tipo de projeto: EAR
Seguinte: tenho um SessionBean chamado GenericDAO, que é o único quem conhece os demais sessionbeans e, por eles, as camadas de persistência.
Precisei implementar um novo método no meu GenericDAO. Algo bem simples: recebe o tipo de objeto e faz uma busca específica no sessionbean correspondente.
Esse novo método foi criado porque nenhum outro método existente satisfazia minha situação.
O problema: quando tento acessar esse novo método do GenericDAO, o Glassfish diz que não tenho permissão. Simples assim.
Fiz um outro teste: criei mais um método que não fazia nada, só retornava 'null'. A mesma coisa.
Então, se eu uso os métodos já publicados, não dá problema.
Se preciso implementar um novo método, na hora da execução, dá o erro abaixo:
Abraços
Deus abençoe
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.