jboss7.x - 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
任何帮助将非常感激。提前致谢。
解决方案
推荐阅读
- ionic-framework - Ionic:我可以打开我的模拟器,但无法在上面启动我的应用程序
- javascript - JS嵌套原型访问父节点
- python - 我无法在 python 中替换 \xe2\x97\x8f
- angular - 缓存可重用 Angular 组件的图像/gif
- php - mpdf 仅应用某些样式
- java - 监视具有事务方法的服务弹簧
- r - 用户输入功能
- android - 如何在博览会中更新语言包?
- html - 正则表达式:检查字符串是否有 1 到 6 个数字,以及正好 4 个特殊字符
- generics - 为什么 Kotlin 的 Type 的 vararg 被视为 Array
而不是数组