Java 在使用EJB3的Spring3.2.6中不推荐的AbstractStatesessionBean的onEjbCreate方法时获取NullPointerException
我有一个使用Spring2.5开发的现有应用程序,我不得不将其迁移到3.2.6。Java 在使用EJB3的Spring3.2.6中不推荐的AbstractStatesessionBean的onEjbCreate方法时获取NullPointerException,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一个使用Spring2.5开发的现有应用程序,我不得不将其迁移到3.2.6。 迁移后,一切正常。。除了在Spring 3.2.6中使用弃用的AbstractStatesessionBean方法的onEjbCreate()时,我得到了一个NullPointerException。 我认为问题在于onEjbCreate()与EJB3.0不兼容。 我尝试使用@PostConstruct,但之后我无法获得现有getBeanFactory()的替代品 如果有人能帮我,我将不胜感激。 谢谢 这是在Spr
迁移后,一切正常。。除了在Spring 3.2.6中使用弃用的
AbstractStatesessionBean
方法的onEjbCreate()
时,我得到了一个NullPointerException
。
我认为问题在于onEjbCreate()与EJB3.0不兼容。
我尝试使用@PostConstruct
,但之后我无法获得现有getBeanFactory()
的替代品
如果有人能帮我,我将不胜感激。
谢谢
这是在Spring2.5上运行的现有代码
@Override
protected void onEjbCreate() throws CreateException {
mqConnectorFactory = (ConnectorFactory) getBeanFactory().getBean(BEAN_NAME_MQ_CONN_FACTORY);
}
正如您所注意到的,
AbstractStatesessionBean
已被弃用,取而代之的是EJB3风格的实现,而在Spring4.0中它被完全删除
对于EJB3,Spring提供了
有了这些,您可以简单地使用:
@Stateless
@Interceptors(SpringBeanAutowiringInterceptor.class)
public class MyEjb {
@Autowired
private ConnectionFactory mqConnectorFactory;
}
当然,您应该确保正确配置了Spring:
beanRefContext.xml
在类路径中。AbstractStatelessSessionBean
不是EJB3,而是EJB2,所以不会这样工作。有关EJB3集成的详细信息,请参阅