when it don't work check the following: 1) Do you have a parameter set in your struts-config.xml for that action 2) Do you have the parameter being passed at all from the query string/form post 3) Is the value of your parameter being expressed in the jsp page using bean:message tag to retrieve the value from your ApplicationResources.properties: <bean:message key="button.add" /> 4) Is the parameter being given a value from the form/request 5) do you have your property name mapped to a method (case sensitive) 6) Do you have an unspecified method so that an empyt parameter value will default to the unspecified method.
Brandon Goodin Phase Web and Multimedia PO Box 85 Whitefish MT 59937 P (406) 862-2245 F (406) 862-0354 [EMAIL PROTECTED] http://www.phase.ws -----Original Message----- From: Jonathan [mailto:[EMAIL PROTECTED]] Sent: Wednesday, February 12, 2003 3:25 PM To: 'Struts Users Mailing List' Subject: LookupDispatchAction Ok the reason I had just put strings in the Map was because of Lack of internationalisation, I've now done this but still I get The same error that of a NullPointerException. I'm assuming this Is because of a method not found error from my ServletException Output in Tomcat... (See attached) Am I correct in assuming that map.put( "button.banana.add", "addBanana" ); maps onto the method.......... public ActionForward addBanana(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { return (mapping.findForward("success")); } I've simply stuck super.execute() in my execute method and also Tried removing the method as well but I still seem to get the Following exception *sigh*. Can anyone suggest whats wrong? Many thanks, Jon. Exception follows.......................................... javax.servlet.ServletException at org.apache.struts.action.RequestProcessor.processException(RequestProces sor.java:507) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr ocessor.java:448) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 266) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:239 6) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa lve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:40 5) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC onnection(Http11Protocol.java:380) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:50 8) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:533) at java.lang.Thread.run(Thread.java:536) root cause java.lang.NullPointerException at java.lang.Class.getMethod0(Class.java:1734) at java.lang.Class.getMethod(Class.java:951) at org.apache.struts.actions.DispatchAction.getMethod(DispatchAction.java:3 34) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.j ava:266) at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAct ion.java:239) at tweek.struts.staff.action.assessment.QuestionMCAction.execute(QuestionMC Action.java:173) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr ocessor.java:446) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: 266) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:239 6) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa lve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:40 5) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC onnection(Http11Protocol.java:380) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:50 8) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:533) at java.lang.Thread.run(Thread.java:536) -----Original Message----- From: Wendy Smoak [mailto:[EMAIL PROTECTED]] Sent: 12 February 2003 17:21 To: 'Struts Users Mailing List' Subject: RE: LookupDispatchAction > The problem is that the execute method ALWAYS gets executed and not the intended method. > Does anybody know why EXECUTE is called but the intended ADDBANANA method is not called? You've effectively "undone" the use of LookupDispatchAction by overriding the execute method without calling super.execute(...). You correctly complain that *your* execute method is being called, not the one in LookupDispatchAction that figures out which method to call. So either get rid of your execute method, or make sure to call super.execute(...). In addition, as David mentioned, the things in the KeyMethodMap should be keys present in your ApplicationResources.properties file, not the actual value in the request. An example from my project: ApplicationResources.properties contains: button.add.prospect=Add Prospect button.delete.prospect=Delete Prospect and getKeyMethodMap has this: map.put( "button.add.prospect", "addProspect" ); map.put( "button.delete.prospect", "deleteProspect" ); Also consider implementing the 'unspecified' method to prevent a problem if the specified parameter is not present in the request. HTH, -- Wendy Smoak Applications Systems Analyst, Sr. Arizona State University PA Information Resources Management --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]