struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Prasanth Pasala <ppas...@pangburngroup.com>
Subject Re: Re: java.lang.ClassCastException: org.apache.struts2.dispatcher.mapper.ActionMapping
Date Fri, 15 Dec 2017 22:10:53 GMT
It seems like removeAttribute or setAttribute is not getting rid of the attribute from request.
See below. If I set the value to a random string then I get a String can't be cast to ActionMapping
exception.

       Enumeration<String> attrs = request.getAttributeNames();
        while(attrs.hasMoreElements()) {
            System.out.println(attrs.nextElement());
        }
        System.out.println(request.getAttribute("struts.actionMapping"));
        request.setAttribute("struts.actionMapping", null);
        System.out.println(request.getAttribute("struts.actionMapping"));

Output:
16:05:05,300 INFO  [stdout] (default task-13) javax.servlet.forward.context_path
16:05:05,302 INFO  [stdout] (default task-13) javax.servlet.forward.servlet_path
16:05:05,303 INFO  [stdout] (default task-13) javax.servlet.forward.request_uri
16:05:05,303 INFO  [stdout] (default task-13) javax.servlet.forward.path_info
16:05:05,303 INFO  [stdout] (default task-13) javax.servlet.forward.query_string
16:05:05,303 INFO  [stdout] (default task-13) javax.servlet.request.key_size
16:05:05,303 INFO  [stdout] (default task-13) __cleanup_recursion_counter
16:05:05,303 INFO  [stdout] (default task-13) javax.servlet.request.cipher_suite
16:05:05,304 INFO  [stdout] (default task-13) struts.valueStack
16:05:05,308 INFO  [stdout] (default task-13) javax.servlet.request.ssl_session_id
16:05:09,121 INFO  [stdout] (default task-13) ActionMapping{name='Login', namespace='/',
method='null', extension='action', params=null, result=null}
16:05:10,960 INFO  [stdout] (default task-13) ActionMapping{name='Login', namespace='/',
method='null', extension='action', params=null, result=null}


On 12/15/2017 02:28 PM, Prasanth Pasala wrote:
> Thanks for the prompt response. Tried removing the attribute from the request, but still
getting the class cast exception. Is it possible it is being set after I have called the forward?
   
> request.removeAttribute("struts.actionMapping");     // FORWARD THE REQUEST    
ServletContext sContext = context.getContext("/context2");     RequestDispatcher rd =
> sContext.getRequestDispatcher("/Login.action");    rd.forward(request, response);   
[show/hide original text]
> No it's not a Struts issue. You don't see this in Struts1 because maybe 
> it doesn't use any object bounded to dispatched request. But Struts2 
> wants to
>
> ActionMapping mapping = 
> (ActionMapping)request.getAttribute("struts.actionMapping");
>
> A workaround would be removing object with key "struts.actionMapping" 
> from request before dispatching.
>
> I hope this helps.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org    


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message