获得NullPointerException异常而使用onEjbCreate已过时AbstractS

2019-10-30 03:32发布

我使用Spring 2.5,这是我不得不迁移到3.2.6开发的现有应用程序。 迁移之后,一切工作正常..除非我得到一个NullPointerException ,同时使用onEjbCreate()已过时的方法AbstractStatelessSessionBean春3.2.6。 我认为这个问题是onEjbCreate()是不是与EJB 3.0兼容。 我尝试使用@PostConstruct ,但当时我没能得到什么来替代现有的getBeanFactory()

希望如果有人能帮助我与此有关。 谢谢。

这是现有的代码,正在对Spring 2.5的

@Override
protected void onEjbCreate() throws CreateException {
    mqConnectorFactory = (ConnectorFactory) getBeanFactory().getBean(BEAN_NAME_MQ_CONN_FACTORY);
}

Answer 1:

当你注意到AbstractStatelessSessionBeandeprecated支持EJB3风格的执行和在Spring 4.0是完全删除。

对于EJB3的Spring提供SpringBeanAutowiringInterceptor

有,你可以简单地使用这样的:

@Stateless
@Interceptors(SpringBeanAutowiringInterceptor.class)
public class MyEjb {

   @Autowired
   private ConnectionFactory mqConnectorFactory;

}

当然,你应该确保你正确配置Spring: beanRefContext.xml在classpath中。



文章来源: Getting NullPointerException while using onEjbCreate method of Deprecated AbstractStatelessSessionBean in Spring 3.2.6 with EJB 3