java web上下文监听_java – 在Spring中向servlet上下文添加监听器

我试图在spring 4 webmvc应用程序中使用java配置.在Internet上浏览一些示例后,我有以下WebAppApplicationInitializer.

public class AppInit implements WebApplicationInitializer {

private static final String CONFIG_LOCATION = "spring.examples.config";

private static final String MAPPING_URL = "/rest/*";

@Override

public void onStartup(ServletContext servletContext) throws ServletException {

WebApplicationContext context = getContext();

servletContext.addListener(new ContextLoaderListener(context));

ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context));

dispatcher.setLoadOnStartup(1);

dispatcher.addMapping(MAPPING_URL);

}

private AnnotationConfigWebApplicationContext getContext() {

AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();

context.setConfigLocation(CONFIG_LOCATION);

return context;

}

它在jetty,tomcat中运行良好,但是当我使用树脂4.0.40时. Web服务器显示以下错误:

java.lang.IllegalStateException:无法初始化上下文,因为那里

已经存在根应用程序上下文 – 检查是否有

web.xml中的多个ContextLoader *定义!

????在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:277)

????在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)

????在com.caucho.server.webapp.WebApp.fireContextInitializedEvent(WebApp.java:3777)

????在com.caucho.server.webapp.WebApp.startImpl(WebApp.java:3687)

????在com.caucho.server.webapp.WebApp.access $400(WebApp.java:207)

????在com.caucho.server.webapp.WebApp $StartupTask.run(WebApp.java:5234)

????在com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)

????在com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)

当我评论这一行

servletContext.addListener(new ContextLoaderListener(context));

一切正常.

问题是将监听器添加到servlet上下文的目的是什么?是不是将监听器添加到servlet上下文是错误的?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值