Tomcat启动加载servlet导致的问题。

sustbeckham 2009-09-01 10:07:21
Servlet代码,这个我需要在启动时就被调用。

public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);

ServletContext application;
WebApplicationContext webApp;
application = getServletContext();
webApp = WebApplicationContextUtils.getWebApplicationContext(application);//获取spring的context

System.out.println(webApp);

// PalService palService = (PalService) wabApp.getBean("palService");


}



web.xml里面的内容。。。

<servlet>
<servlet-name>ForumStart</servlet-name>
<servlet-class>cn.pal.action.servlet.start.ForumStart</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>ForumStart</servlet-name>
<url-pattern>/ForumStart</url-pattern>
</servlet-mapping>



但是这个时候webApp得到的值总是为空~~~~~~~~~~~~~~~~~~~~~~~null
我晕。。。。请各位赐教
...全文
75 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
feishare 2009-09-01
  • 打赏
  • 举报
回复
也可以用
WebApplicationContext webpc = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());

struts和spring的集合用的是一个listener
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

imasmallbird 2009-09-01
  • 打赏
  • 举报
回复
你指声明了一个ServletContext application;并没有为它赋值,
而当 ServletContext 属性列表中不存在 WebApplicationContext 时,getWebApplicationContext() 方法不会抛出异常,它简单地返回 null。所以你得到的就一直是null,
你可以先把它进行取值然后再操作

也可以用
WebApplicationContext wac = (WebApplicationContext)servletContext.
getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

另外启动时就调用不应该是servlet吧,而应该是个listener
servlet的init是加载这个servlet时才会调用~

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧