Hi Sam,
Thanks for your quick response.
I have been trying the Spring's DelegatingActionProxy for a while, it gives me NullPointerException. Here is what I did
In applicationContext.xml
Code:
<bean name="/flowAction"
class="org.springframework.webflow.executor.struts.FlowAction">
</bean>
and in struts-config.xml
Code:
<!--
<action path="/flowAction" name="actionForm" scope="request" type="org.springframework.webflow.executor.struts.FlowAction"/>
-->
<action path="/flowAction" name="actionForm" scope="request" type="org.springframework.web.struts.DelegatingActionProxy"/>
But I keep getting the exeception
Code:
**** detActionBeanName /flowAction
beanName /flowAction
Action class org.apache.struts.action.Action
****** action org.springframework.webflow.executor.struts.FlowAction@998537
****** delegateAction org.springframework.webflow.executor.struts.FlowAction@998537
****** mapping ActionConfig[path=/flowAction,name=actionForm,scope=request,type=org.springframework.web.struts.DelegatingActionProxy
****** form org.springframework.web.struts.SpringBindingActionForm@f8e24a
****** request org.apache.catalina.connector.RequestFacade@10608e6
****** response org.apache.catalina.connector.ResponseFacade@1325877
2007-03-08 18:22:43,823 WARN [org.apache.struts.action.RequestProcessor] - <Unhandled Exception thrown: class java.lang.NullPointerException>
2007-03-08 18:22:43,823 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/swf_date].[action]] - <Servlet.service() for servlet action threw exception>
java.lang.NullPointerException
at org.springframework.web.struts.ActionSupport.getServletContext(ActionSupport.java:121)
at org.springframework.webflow.executor.struts.FlowAction.execute(FlowAction.java:217)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:113)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:833)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)
at java.lang.Thread.run(Thread.java:595)
I put some println in DelegatingActionProxy.java seems it got everything, from the output before exception track
Code:
public ActionForward execute(
ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
Action delegateAction = getDelegateAction(mapping);
System.out.println("****** delegateAction "+delegateAction);
System.out.println("****** mapping "+mapping);
System.out.println("****** form "+form);
System.out.println("****** request "+request);
System.out.println("****** response "+response);
ActionForward forward = null;
forward = delegateAction.execute(mapping, form, request, response); //Exception is thrown here
System.out.println("****** forward "+forward);
return forward;
}
Any idea? Thanks