java - Spring 在创建类路径中定义的名为 propertyPlaceholderConfigurer 的 bean 时出错

标签 java spring

各位专家

我们使用 ClassPathXmlApplicationContext 在类路径中加载带有 xml 文件的 bean。 它从类路径查找并加载 xml 文件,但在其中一个具有 propertyPlaceholderConfigurer bean 引用类路径中的属性文件的 xml 文件中。它抛出空指针异常,无法创建 propertyPlaceholderConfigurer bean。

不确定它是否读取属性文件,即使它是类路径,因为它可以读取其他 xml 文件? 属性文件有可能包含损坏的数据吗? 有关可能出现问题的任何线索吗?

Error creating bean with name 'propertyPlaceholderConfigurer' defined in class path resource [ws.xml]: Initialization of bean failed; nested exception is java.lang.NullPointerException
    at com.ibm.ejs.container.StatelessBeanO.initialize(StatelessBeanO.java:375)
    at com.ibm.ejs.container.BMStatelessBeanOFactory.create(BMStatelessBeanOFactory.java:45)
    at com.ibm.ejs.container.EJSHome.createBeanO(EJSHome.java:1031)
    at com.ibm.ejs.container.EJSHome.createBeanO(EJSHome.java:1141)
    at com.ibm.ejs.container.activator.UncachedActivationStrategy.atActivate(UncachedActivationStrategy.java:84)
    at com.ibm.ejs.container.activator.Activator.activateBean(Activator.java:599)
    at com.ibm.ejs.container.EJSContainer.preInvokeActivate(EJSContainer.java:3964)
    at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:3269)
    at com.ibm.websphere.scheduler.EJSRemoteStatelessMeFBatchHandler_fb00fe87.process(EJSRemoteStatelessMeFBatchHandler_fb00fe87.java:27)
    at com.ibm.websphere.scheduler._TaskHandler_Stub.process(_TaskHandler_Stub.java:269)
    at com.ibm.ws.scheduler.tasks.BeanTaskInfoWork.doWork(BeanTaskInfoWork.java:126)
    at com.ibm.ws.scheduler.AlarmListener.executeTaskWithNotification(AlarmListener.java:796)
    at com.ibm.ws.scheduler.AlarmListener.access$700(AlarmListener.java:121)
    at com.ibm.ws.scheduler.AlarmListener$TaskWork.doWork(AlarmListener.java:427)
    at com.ibm.ws.scheduler.AlarmListener$TaskWork.run(AlarmListener.java:213)
    at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:782)
    at com.ibm.ws.asynchbeans.ExecutionContextImpl.go(ExecutionContextImpl.java:86)
    at com.ibm.ws.scheduler.AlarmListener.fireTask(AlarmListener.java:1401)
    at com.ibm.ws.scheduler.AlarmListener.fired(AlarmListener.java:1319)
    at com.ibm.ws.asynchbeans.AlarmImpl.callListenerMethod(AlarmImpl.java:340)
    at com.ibm.ws.asynchbeans.timer.GenericTimer.run(GenericTimer.java:216)
    at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:1150)
    at com.ibm.ws.asynchbeans.AlarmImpl.runListenerAsCJWork(AlarmImpl.java:175)
    at com.ibm.ws.asynchbeans.am._Alarm.fireAlarm(_Alarm.java:333)
    at com.ibm.ws.asynchbeans.am._Alarm.run(_Alarm.java:230)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'propertyPlaceholderConfigurer' defined in class path resource [ws.xml]: Initialization of bean failed; nested exception is java.lang.NullPointerException
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:478)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(AccessController.java:224)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:217)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:516)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:363)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)

最佳答案

new ClassPathXmlApplicationContext(a.xml ,b.xml,c.xml);

返回空指针异常,因为在 c.xml 中定义了 propertyPlaceholderConfigurer bean,它引用了类路径中的属性文件。

关于java - Spring 在创建类路径中定义的名为 propertyPlaceholderConfigurer 的 bean 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585990/

相关文章:

spring - 无法读取HTTP消息: org. springframework.http.converter.HttpMessageNotReadableException:缺少必需的请求正文

mysql - 没有数据库的Spring Boot

java - 分析 spring bean 定义

java - 谁能告诉我运行 Spring 框架基本示例时出现的异常?

java - LibGDX,flappy bird 克隆,创建 BUTTON

java - 在 spring 中添加外部 jar - java

java - 从 QBytearray 创建 QImage

java - "Could not register destruction callback"警告消息导致内存泄漏?

java - 如何实现删除用户?

java - 在java中,如何通过非递归算法删除一个文件夹/目录?