有一个我不确定从哪里开始寻找的问题。
背景:
多模块应用程序 - 主要 Web 应用程序模块和每个提供程序的模块,使用覆盖覆盖文件级别的提供程序细节。提供程序模块之一中出现问题。提供程序模块使用非常相似的 applicationContext.xml。问题仅发生在生产环境和一台同事机器上 - 仅适用于一个提供者覆盖模块 - 从相同的 git master branch 构建。开发/测试/生产机器 = linux,同事机器 = iMac,其他人的机器 = Windows。
在 WebLogic 启动时出现问题,此时正在初始化有问题的 Bean。bean 与在同一 applicationContext.xml 中根据 util:set 元素定义的 Set 属性连接。各种模块定义了具有相同 Set 属性的相同 auth_filter bean(尽管提供者可能有几个不同的 URI 用于列表)
豆定义:
<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] [错误] org.springframework.web.context.ContextLoader@308 -> 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中创建名称为“auth_filter”的 bean 时出错:设置属性值时出错;嵌套异常是 org.springframework.beans.PropertyBatchUpdateException;嵌套的 PropertyAccessExceptions (3) 是: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'allowedURIs' 抛出异常;嵌套异常是 java.lang.NullPointerException PropertyAccessException 2:org.springframework.beans.MethodInvocationException:属性“protectedURIs”抛出异常;嵌套异常是 java.lang.NullPointerException PropertyAccessException 3:org.springframework.beans.MethodInvocationException:属性“allowedAlwaysURIs”抛出异常;嵌套异常是 java.lang.NullPointerException 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1396) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 在 org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) . . .
同样,此错误仅显示在生产环境和其他 1 台同事机器上发生。任何关于从哪里开始寻找的建议将不胜感激