Weblogic没有[javax.persistence.EntityManager]类型的唯一bean

Weblogic没有[javax.persistence.EntityManager]类型的唯一bean,java,ejb-3.0,weblogic-10.x,weblogic11g,Java,Ejb 3.0,Weblogic 10.x,Weblogic11g,我是EJB3新手,正在编写现有代码 我们正在使用weblogic10.3,下面的代码运行良好 @Stateless(mappedName="ProcessIssacIncomingMessage") @TransactionManagement(value=TransactionManagementType.CONTAINER) @TransactionAttribute(value=TransactionAttributeType.REQUIRED) @EjbRef(name="Databas

我是EJB3新手,正在编写现有代码

我们正在使用weblogic10.3,下面的代码运行良好

@Stateless(mappedName="ProcessIssacIncomingMessage")
@TransactionManagement(value=TransactionManagementType.CONTAINER)
@TransactionAttribute(value=TransactionAttributeType.REQUIRED)
@EjbRef(name="Database" jnod-name="Database")

public class IncomingMessageBean implements IncomingMessageRemote, IncomingMessageLocal {
...
@Ejb
private Database<Object> databaseBean;
在10.3中,weblogic.jar包含weblogic.ejbgen.EjbRef包

我们现在切换到weblogic10.3.1,weblogic.jar不再附带weblogic.ejbgen包

因此,我将代码更改为10.3.1中尚未测试的代码

@Stateless(mappedName="ProcessIssacIncomingMessage")
@TransactionManagement(value=TransactionManagementType.CONTAINER)
@TransactionAttribute(value=TransactionAttributeType.REQUIRED)
@EjbRef(name="Database" jnod-name="Database")  --- removed this line


public class IncomingMessageBean implements IncomingMessageRemote, IncomingMessageLocal {
...
@Ejb(mappedName="Database") -- added the mapped name here.
private Database<Object> databaseBean;
为了向后兼容。在运行wl10.3中的代码后,我得到了错误

错误为-javax.ejb.EJBTransactionRolledbackException:ejb异常::com.bea.core.repackaged.springframework.beans.factory.BeanCreationException:Dependency injection失败:找不到关于类接口javax.persistence.EntityManager的bean定义;嵌套异常为com.bea.core.repackaged.springframework.beans.factory.NoSuchBeanDefinitionException:未定义[javax.persistence.EntityManager]类型的唯一bean:未定义javax.persistence.EntityManager类型的bean;owner=com.bea.core.repackaged.springframework.context.support.GenericaApplicationContext:显示名称


有人能帮忙吗?我应该如何重构代码。或者这里缺少什么?因此,我的代码在不使用@EjbRef的情况下与10.3和10.3.1兼容,我认为源代码不是针对10.3的,而是weblogic的某个早期版本,其中EjbRef是由weblogic.jar中的weblogic提供的。但是,在10.3.x以后的版本中,weblogic.ejbgen.EjbRef被重构为不同于weblogic.jar的jar

我对server/lib文件夹中的所有jar进行了分解,发现wls-api.jar中也有相同的包


我的问题现在解决了。在我找到这个之前,我已经从使用任何weblogic特定jar文件中删除了对代码的依赖性。

我认为源代码不是针对10.3的,而是weblogic的某个早期版本,在EjbRef中,weblogic在weblogic.jar中提供。但是,在10.3.x以后的版本中,weblogic.ejbgen.EjbRef被重构为不同于weblogic.jar的jar

我对server/lib文件夹中的所有jar进行了分解,发现wls-api.jar中也有相同的包

我的问题现在解决了。在找到这个之前,我已经从使用任何特定于weblogic的jar文件中删除了对代码的依赖