Я новичок в WebSphere
, я написал ejb
и даже развернул его. Но когда я пытаюсь получить к нему доступ.Проблемы с доступом к безопасному Ejb's
Я получаю следующее сообщение об ошибке. Проблема связана с привязками или настройкой безопасности или сферы?
javax.ejb.EJBAccessException: SERVER (ID = 4773e3aa, хост = локальный) TRACE СТАРТ: 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) at com.ibm.CORBA.iiop.ORB.process (ORB.java:1575) at com.ibm.rmi.iiop.Connection.doRequestWork (Connection.java:3039) at 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) СЕРВЕР (id = 4773e3aa, host = localhost) TRACE END.
Я пробовал искать его в google, но не был успешным. предложения приветствуются.
Updates-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-банку-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