Spring应用程序上下文初始化失败,BeanCreationException - 由于NullPointerException而导致的错误设置属性Util:Set属性

时间:2013-07-19 08:27:45

标签: spring properties initialization set weblogic

遇到问题,我不确定从哪里开始寻找。

背景:

多模块应用程序 - 主要Web应用程序模块和每个提供程序的模块,使用叠加层覆盖文件级别的提供程序特定的内容。其中一个提供程序模块中出现问题。提供者模块使用非常相似的applicationContext.xml。 问题仅发生在生产环境和一个同事机器上 - 仅针对一个提供商覆盖模块 - 从相同的git master分支构建。 Dev / Test / Prod machine = linux,co-workers machine = iMac,其他人的机器= Windows。

在初始化违规Bean时,WebLogic启动时会出现问题。 bean使用Set属性进行连接,这些属性在util:set elements的相同applicationContext.xml中定义。各种模块使用相同的Set属性定义相同的auth_filter bean(虽然提供者可能有两个不同的URI列表)

Bean定义:

<bean id="auth_filter" class="xxx.xxx.xxx.xxx.AuthFilter"><!--offending bean-->
    <property name="sessionProfile" ref="sessionProfile"/>
    <property name="allowedURIs" ref="allowedURIs"/><!--offending set-->
    <property name="protectedURIs" ref="protectedURIs"/><!--offending set-->
    <property name="allowedAlwaysURIs" ref="allowedAlwaysURIs"/><!--offending set-->
</bean>

违规集的定义如下(为简洁起见,只有一个 - 其他人遵循套件):

<util:set id="allowedURIs">
    <value>/</value> <!--this is here because '/j_spring_security_check' presents as this in AuthFilter-->
    <value></value> <!-- for dashboard -->
    <value>/login(/.*)*</value>
    <value>/resources(/.*)*</value>
    <value>/register(/.*)*</value>
    <value>/forgotPassword(/.*)*</value>
    <value>/community(/.*)*</value>
    .
    .
    .
    </util:set>

当WebLogic启动时,其他模块启动正常,也被视为从构建中排除违规模块显示其他模块没有问题。此模块提供以下异常(为简洁起见,再次截断,如果需要,可以包括):

    [2013/07/19 08:46:40] [ERROR] org.springframework.web.context.ContextLoader@308 -> Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'auth_filter' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (3) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'allowedURIs' threw exception; nested exception is java.lang.NullPointerException
PropertyAccessException 2: org.springframework.beans.MethodInvocationException: Property 'protectedURIs' threw exception; nested exception is java.lang.NullPointerException
PropertyAccessException 3: org.springframework.beans.MethodInvocationException: Property 'allowedAlwaysURIs' threw exception; nested exception is java.lang.NullPointerException
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1396)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
.
.
.

同样,此错误仅显示在生产环境和其他1个同事机器上。关于从哪里开始寻找的任何建议都将非常感激

1 个答案:

答案 0 :(得分:0)

将您的开发测试设置与Weblogic和环境jre的版本进行比较。检查弹簧版本是否相同。