我是WebSphere
的新手,我寫了一個ejb
甚至已經部署它。 但是當我嘗試訪問它。訪問安全Ejb的問題
我收到以下錯誤。問題是綁定或配置安全還是領域?
javax.ejb.EJBAccessException: SERVER(ID = 4773e3aa,主機=本地主機)TRACE START: javax.ejb.EJBAccessException:SECJ0053E:授權失敗???調用(Bean)d365-EB_OFSConnectorService-ejb_jar#d365-ModuleConnectorService-ejb.jar#ModuleConnectorServiceBean processOFS:java.lang.String:1未被授予任何所需的角色:d365user at com.ibm.ws.security.core .SecurityCollaborator.performAuthorization(SecurityCollaborator.java:626) 在com.ibm.ws.security.core.EJSSecurityCollaborator.preInvoke(EJSSecurityCollaborator.java:265) 在com.ibm.ws.ejbcontainer.runtime.EJBSecurityCollaboratorAdapter.preInvoke(EJBSecurityCollaboratorAdapter的.java:82) 在com.ibm.ws.ejbcontainer.runtime.EJBSecurityCollaboratorAdapter.preInvoke(EJBSecurityCollaboratorAdapter.java:43) 在com.ibm.ejs.container.EJSContainer.notifySecurityCollaboratorPreInvoke(EJSContainer.java:3895) 在玉米.ibm.ejs.container.EJSContainer.preInvokeAfterActivate(EJSContainer。的java:3825) 在com.ibm.ejs.container.EJSContainer.EjbPreInvoke(EJSContainer.java:3046) 在com.kaiser.services.ofsconnector.ejb.EJSRemote0SLModuleConnectorServiceBean_8c753384.processOFS(EJSRemote0SLModuleConnectorServiceBean_8c753384.java) 在com.kaiser。 services.ofsconnector.ejb._EJSRemote0SLModuleConnectorServiceBean_8c753384_Tie.processOFS__CORBA_WStringValue(_EJSRemote0SLModuleConnectorServiceBean_8c753384_Tie.java:1) 在com.kaiser.services.ofsconnector.ejb._EJSRemote0SLModuleConnectorServiceBean_8c753384_Tie._invoke(_EJSRemote0SLModuleConnectorServiceBean_8c753384_Tie.java) 在com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler( ServerDelegate.java:669) at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:523) at com.ibm.rmi.iiop.ORB.proces S(ORB.java:523) 在com.ibm.CORBA.iiop.ORB.process(ORB.java:1575) 在com.ibm.rmi.iiop.Connection.doRequestWork(Connection.java:3039) 在com.ibm.rmi.iiop.Connection.doWork(Connection.java:2922) at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:64) at com.ibm.ejs.oa.pool。 PooledThread.run(ThreadPool.java:118) at com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1862) SERVER(id = 4773e3aa,host = localhost)TRACE END。
我已經試過在谷歌找它,但沒有成功。歡迎提出建議。
更新-1 在我的ejb-jar.xml中,安全性已被定義爲
<assembly-descriptor>
<security-role>
<role-name>d365user</role-name>
</security-role>
<method-permission>
<role-name>d365user</role-name>
<method>
<ejb-name>ModuleConnectorServiceBean</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>ModuleConnectorServiceBeanOMS</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
</assembly-descriptor>
IBM-EJB-JAR-bnd.xml
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd" version="1.0">
<session name="ModuleConnectorServiceBean">
<resource-ref binding-name="jdbc/t24DataSource" name="jdbc/d365DataSource"/>
<resource-ref binding-name="jdbc/d365LockingDataSource" name="jdbc/d365LockingDataSource"/>
</session>
<session name="ModuleConnectorServiceBeanOMS">
<resource-ref name="jdbc/d365DataSource" binding-name="jdbc/d365DataSource"/>
<resource-ref name="jdbc/d365LockingDataSource" binding-name="jdbc/d365LockingDataSource"/>
</session>
</ejb-jar-bnd>
如果你仍然在發展,做一個快速嘗試刪除有關EJB方法的訪問註釋。這將追蹤到網絡問題或(更可能)無效的用戶角色綁定。 – Leonardo
我已經刪除了安全限制並且它可以工作。所以我們可以放心地說,網絡中沒有問題。 – User27854