java.lang.RuntimeException: Non matching type for inject of field:

20:37:56,015 ERROR [STDERR] java.lang.RuntimeException: Non matching type for inject of field: private ejbModule.persistence.userAdmin.user.UserDao ejbModule.business.apply.DeptTempMgrBean.userDao for type: $Proxy96 of jndiName env/ejbModule.business.apply.DeptTempMgrBean/userDao
intfs: , ejbModule.persistence.userAdmin.user.UserDao, org.jboss.ejb3.JBossProxy
20:37:56,015 ERROR [STDERR]  at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:128)
20:37:56,015 ERROR [STDERR]  at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:106)
ejbModule.business.apply.DeptTempMgrBean.userDao to $Proxy96
20:37:56,031 ERROR [STDERR]  at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
20:37:56,031 ERROR [STDERR]  at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
20:37:56,031 ERROR [STDERR]  at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
20:37:56,031 ERROR [STDERR]  at java.lang.reflect.Field.set(Field.java:657)
20:37:56,031 ERROR [STDERR]  at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:116)
20:37:56,031 ERROR [STDERR]  ... 94 more

 

 

20:37:56,031 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException: Can not set ejbModule.persistence.userAdmin.user.UserDao field ejbModule.business.apply.DeptTempMgrBean.userDao to $Proxy96
20:37:56,031 ERROR [STDERR]  at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
20:37:56,031 ERROR [STDERR]  at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
20:37:56,031 ERROR [STDERR]  at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
20:37:56,031 ERROR [STDERR]  at java.lang.reflect.Field.set(Field.java:657)
20:37:56,031 ERROR [STDERR]  at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:116)
20:37:56,031 ERROR [STDERR]  ... 94 more
20:37:56,031 INFO  [BusinessSortAction] BusinessSortAction.getBsSortList exception end

 

 

    红色处,经过测试,是实例化ejb的时候采用了注解方式实例化时报的错,而这里的ejb包结构有点特殊,情况是ear包中包含了两个ejb.jar和一个war,war包里的action调用b.ejb.jar的一个会话bean,而这类中引用到a.ejb.jar的一个会话bean也就是文中出现的userdao了,实例化方式为:@EJB(beanName="UserDaoImpl"),

   当实例化改为:usergroupDao = (UsergroupDao)EJB3Factory.getLocalEJBSessionBean("UsergroupDaoImpl") ,就不会出现这个情况。

   如果是a.ejb.jar中的会话bean引用a.ejb.jar的会话bean,是不会出现这样的问题的。

   具体的原因有待查找。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值