Spring 错误 - 使用 Spring 配置文件:异常启动过滤器 applicationFilterChain
Spring error - Using Spring profiles : Exception starting filter applicationFilterChain
我从一个工作的 Spring 配置的 Web 应用程序开始,并且一直在 Spring 上下文配置文件中的 beans 标记中添加一个 Spring 配置文件:
<beans profile="MyProfile"
来自web.xml
<!-- Default Spring profile -->
<param-name>spring.profiles.default</param-name>
<param-value>MyProfile</param-value>
<filter>
<filter-name>applicationFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>applicationFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我现在遇到以下异常,我不确定如何解决这个问题。
2015-11-25T16:06:17.631+0000|SEVERE: WebModule[/MyWebApp]PWC1270: 异常启动过滤器 applicationFilterChain
java.lang.InstantiationException
在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:124)
在 org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4685)
在 org.apache.catalina.core.StandardContext.start(StandardContext.java:5377)
在 com.sun.enterprise.web.WebModule.start(WebModule.java:498)
在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)
在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2019)
在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1669)
在 com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)
在 org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
在 org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
在 org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301)
在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
在 org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
在 com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1066)
在 com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
在 com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
在 com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
在 com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
在 com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
在 com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
在 com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
在 com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
在 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
在 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
在 com.sun.grizzly.ContextTask.run(ContextTask.java:71)
在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
在 java.lang.Thread.run(Thread.java:744)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: 没有定义名为 'applicationFilterChain' 的 bean
在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:549)
在 org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095)
在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277)
在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
在 org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1109)
在 org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:326)
在 org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:236)
在 org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:194)
在 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:264)
在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:120)
... 还有 41 个
好的 - 问题是我的 web.xml 文件
中的条目
<param-name>spring.profiles.default</param-name>
<param-value>MyProfile</param-value>
没有被激活所以我使用 JVM 参数传入:
-Dspring.profiles.active=MyProfile 现在可以使用了
我从一个工作的 Spring 配置的 Web 应用程序开始,并且一直在 Spring 上下文配置文件中的 beans 标记中添加一个 Spring 配置文件:
<beans profile="MyProfile"
来自web.xml
<!-- Default Spring profile -->
<param-name>spring.profiles.default</param-name>
<param-value>MyProfile</param-value>
<filter>
<filter-name>applicationFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>applicationFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我现在遇到以下异常,我不确定如何解决这个问题。
2015-11-25T16:06:17.631+0000|SEVERE: WebModule[/MyWebApp]PWC1270: 异常启动过滤器 applicationFilterChain java.lang.InstantiationException 在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:124) 在 org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4685) 在 org.apache.catalina.core.StandardContext.start(StandardContext.java:5377) 在 com.sun.enterprise.web.WebModule.start(WebModule.java:498) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2019) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1669) 在 com.sun.enterprise.web.WebApplication.start(WebApplication.java:109) 在 org.glassfish.internal.data.EngineRef.start(EngineRef.java:130) 在 org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269) 在 org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240) 在 org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1066) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259) 在 com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461) 在 com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212) 在 com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179) 在 com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117) 在 com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354) 在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 在 com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) 在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) 在 com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) 在 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 在 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 在 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 在 java.lang.Thread.run(Thread.java:744) Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: 没有定义名为 'applicationFilterChain' 的 bean 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:549) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 在 org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1109) 在 org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:326) 在 org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:236) 在 org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:194) 在 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:264) 在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:120) ... 还有 41 个
好的 - 问题是我的 web.xml 文件
中的条目<param-name>spring.profiles.default</param-name>
<param-value>MyProfile</param-value>
没有被激活所以我使用 JVM 参数传入: -Dspring.profiles.active=MyProfile 现在可以使用了