先看问题,首先是spring和struts集成问题
exception
javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.NullPointerException
cn.dangkun.web.action.UserAction.execute(UserAction.java:23)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
异常出现
开始debug,
于是 发现
利用
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
获取ApplicationContext时失败 返回值为NULL
于是查spring看源代码
[code=Java]
public static WebApplicationContext getWebApplicationContext(ServletContext sc, String attrName) {
Assert.notNull(sc, "ServletContext must not be null");
Object attr = sc.getAttribute(attrName);
if (attr == null) {
return null;
}
[/code]
sc.getAttribute(attrName);这句无法获取对象??
再次查看配置文件
web.xml
试试以下几种配置方式
1 [code=XML]
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>e:/workspace/Huagezi2/WebContent/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<listener>
<lister-class>org.springframework.web.context.ContextLoaderListener</lister-class>
<load-on-startup>1</load-on-startup>
</listener>
[/code]
2 [code=XML]
<!--加载spring框架 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<lister-class>org.springframework.web.context.ContextLoaderListener</lister-class>
<load-on-startup>1</load-on-startup>
</listener>
[/code]
3 [code=XML]
<!--加载spring框架 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<lister-class>org.springframework.web.context.ContextLoaderListener</lister-class>
<load-on-startup>1</load-on-startup>
</listener>
[/code]
同时在src目录下和WEB-INF下均有applicationContext.xml配置文件 搜索了网上不少 同时无法解答 百思不得其解
用的spring版本为2.5 struts为1.38