我部署了一个定义了远程ejb的全局模块,但我无法从已部署的应用程序中访问它们。
下面是界面:
@Remote
public interface ICryptoAPI..
and bean definition:
@Stateless
public class CryptoAPI implements ICryptoAPI ...如何找到部署的Ejb的jndi名称,因为default @Ejb找不到bean?仅此一提,来自jboss-cli的/subsystem=naming:jndi-view()不会打印任何有关已部署模块的内容,并且wildfly日志中也没有错误。
也许,在全局模块中定义可注入的ejb是不可能的?
发布于 2018-11-28 20:36:14
EJB绑定到的portable JNDI name依赖于如何部署bean和一些配置(例如,部署描述符)。
除了可移植的JNDI名称之外,JBoss还提供从java:jboss/exported名称空间中的远程VM的访问。
为了方便起见,JBoss的默认日志记录在控制台和部署时的服务器日志文件中显示了绑定到的JNDI名。记录器是INFO级别的org.jboss.as.ejb3.deployment。
示例:
12:00:00,000 INFO [org.jboss.as.ejb3.deployment] (MSC service thread 1-6) WFLYEJB0473: JNDI bindings for session bean named 'MyBean' in deployment unit 'subdeployment "my-beans.jar" of deployment "my-app.ear"' are as follows:
java:global/my-app/my-beans/MyBean!my.package.MyBeanRemote
java:app/my-beans/MyBean!my.package.MyBeanRemote
java:module/MyBean!my.package.MyBeanRemote
java:jboss/exported/my-app/my-beans/MyBean!my.package.MyBeanRemote为了访问EJB,您可以手动执行JNDI查找或使用@EJB注解lookup method进行注入。
https://stackoverflow.com/questions/53505293
复制相似问题