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]

Reply via email to