问题描述
我们已经将应用程序从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 Home接口: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接口,关联为None
这进一步导致: com.sun.proxy。$ Proxy39无法转换为com.project.ejb.BeanSLIF
任何帮助将不胜感激。预先感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)