首页 > 解决方案 > JBoss EAP 7.2.8 中的 EJB2.1 查找问题

问题描述

我们已经将我们的应用程序从 Weblogic 迁移到 JBoss EAP 7.2.8,现在我们在远程接口的 JNDI 查找中遇到了问题。

ejb-jar.xml中的配置:

<session>
                     <ejb-name>BeanSL</ejb-name>
                     <home>com.project.ejb.BeanSLHome</home>
                     <remote>com.project.ejb.BeanSLIF</remote>
                     <ejb-class>com.project.ejb.BeanSL</ejb-class>
                     <session-type>Stateless</session-type>
                     <transaction-type>Container</transaction-type>
 </session>

Jboss 中的 server.log 条目,用于上述类的 EJB 注册:

        java:global/ear/jarWithEJB/BeanSL!com.project.ejb.BeanSLIF
        java:app/dbdocejb/BeanSL!com.project.ejb.BeanSLIF
        java:module/BeanSL!com.project.ejb.BeanSLIF
        java:jboss/exported/ear/jarWithEJB/BeanSL!com.project.ejb.BeanSLIF
        java:global/ear/jarWithEJB/BeanSL!com.project.ejb.BeanSLHome
        java:app/dbdocejb/BeanSL!com.project.ejb.BeanSLHome
        java:module/BeanSL!com.project.ejb.BeanSLHome
        java:jboss/exported/ear/jarWithEJB/BeanSL!com.project.ejb.BeanSLHome

远程接口:BeanSLIF 主接口:BeanSLHome 实现远程接口的类:BeanSL

BeanSLIF beanSLIf  = null ; 
Properties p  = new Properties();
                      p.put(Context.INITIAL_CONTEXT_FACTORY, “org.wildfly.naming.client.WildFlyInitialContextFactory”);
                      p.put( Context.PROVIDER_URL, “http-remoting://localhost:8090” );
                      p.put(Context.SECURITY_PRINCIPAL, “jbossUser”); 
                      p.put(Context.SECURITY_CREDENTIALS, “jbossPassword”);
                      p.put("jboss.naming.client.ejb.context", "true");
                      ctx = new InitialContext( p );
beanSLIf = (BeanSLIF) ctx.lookup(“ejb:/ear/jarWithEJB/BeanSL!com.project.ejb.BeanSLIF”);

在检查上述查找代码(cx.lookup(ejb:/...) 代码时,我在“代理”下方:“/ear/jarWithEJB/BeanSL”的远程 EJB StatelessEJBLocator 的代理,视图是接口 com.project.ejb .BeanSLIF,亲和力为无

这进一步导致: com.sun.proxy.$Proxy39 无法转换为 com.project.ejb.BeanSLIF

任何帮助将非常感激。提前致谢。

标签: jboss7.xjndiejb-2.x

解决方案


推荐阅读