环境
MyEclipse6.0+struts1.2+Spring2.0说明:
struts中的Action继承的是LookupDispatchAction,然后用Spring代理,web.xml中设置监听器。运行时报一下错误:
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at org.apache.struts.action.Action.getResources(Action.java:339)
at org.apache.struts.actions.LookupDispatchAction.initLookupMap(LookupDispatchAction.java:171)
at org.apache.struts.actions.LookupDispatchAction.getLookupMapName(LookupDispatchAction.java:220)
at org.apache.struts.actions.LookupDispatchAction.getMethodName(LookupDispatchAction.java:272)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:157)
at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:146)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)相关代码:
struts-config.xml
……
<action-mappings >
<action
attribute="teForm"
input="/te.jsp"
name="teForm"
parameter="typ"
path="/te"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="index" path="/index.jsp" />
</action> </action-mappings>
……
applicationContext.xml
……
<bean name="/te" class="com.accp.test.web.action.TeAction">
……TeAction.java
……
public class TeAction extends LookupDispatchAction {
/*
* Generated Methods
*/ /**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward a(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TeForm teForm = (TeForm) form;// TODO Auto-generated method stub
return mapping.findForward("index");
}
public ActionForward d(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TeForm teForm = (TeForm) form;// TODO Auto-generated method stub
return mapping.findForward("index");
} protected Map getKeyMethodMap() {
Map tep = new HashMap();
tep.put("sub.a", "a");
tep.put("sub.d", "d");
return tep;
}
}
……请各位达人帮帮忙,这是什么回事啊?用DispatchAction好像没有问题,如果要用LookUpDispatchAction怎么办啊???????
MyEclipse6.0+struts1.2+Spring2.0说明:
struts中的Action继承的是LookupDispatchAction,然后用Spring代理,web.xml中设置监听器。运行时报一下错误:
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at org.apache.struts.action.Action.getResources(Action.java:339)
at org.apache.struts.actions.LookupDispatchAction.initLookupMap(LookupDispatchAction.java:171)
at org.apache.struts.actions.LookupDispatchAction.getLookupMapName(LookupDispatchAction.java:220)
at org.apache.struts.actions.LookupDispatchAction.getMethodName(LookupDispatchAction.java:272)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:157)
at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:146)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)相关代码:
struts-config.xml
……
<action-mappings >
<action
attribute="teForm"
input="/te.jsp"
name="teForm"
parameter="typ"
path="/te"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="index" path="/index.jsp" />
</action> </action-mappings>
……
applicationContext.xml
……
<bean name="/te" class="com.accp.test.web.action.TeAction">
……TeAction.java
……
public class TeAction extends LookupDispatchAction {
/*
* Generated Methods
*/ /**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward a(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TeForm teForm = (TeForm) form;// TODO Auto-generated method stub
return mapping.findForward("index");
}
public ActionForward d(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TeForm teForm = (TeForm) form;// TODO Auto-generated method stub
return mapping.findForward("index");
} protected Map getKeyMethodMap() {
Map tep = new HashMap();
tep.put("sub.a", "a");
tep.put("sub.d", "d");
return tep;
}
}
……请各位达人帮帮忙,这是什么回事啊?用DispatchAction好像没有问题,如果要用LookUpDispatchAction怎么办啊???????
的源代码,这么做也比较麻烦
期待好的解决方法
一直喜欢用LookUpDispatchAction
期待达人解答