स्प्रिंग 3.1.0 से स्प्रिंग 3.2.3 को अपग्रेड करना, कनवर्ज़न नॉट्स समर्थितपोर्ट अपवाद

मैं अपने वेब ऐप के साथ वसंत 3.1.0 से वसंत 3.2.3 तक अपग्रेड कर रहा हूं, और मुझे पता नहीं लगा कि मुझे 500 त्रुटि क्यों मिल रही है। यहां मेरे कोड का एक स्निपेट है:

@Controller("myController")
@RequestMapping("/")
@SessionAttributes({"myObject"})
public class MyController {
@RequestMapping(value="/submit.action", method=RequestMethod.POST)
public ModelAndView submit(
        @Validated @ModelAttribute("myObject") MyObject myObject
        , RedirectAttributes redirectAttributes
        , BindingResult bindingResult) 
{
    ModelAndView mav = new ModelAndView();

            if (bindingResult.hasErrors()) {
                mav.setViewName("redirect:/first.do");
                redirectAttributes.addFlashAttribute("errors", new HashMap(bindingResult.getModel());
                return mav;
            }
    mav.setViewName("redirect:/next.do");
    mav.addObject("myObject", myObject);

    return mav;
}

@RequestMapping(value="/first.do", method=RequestMethod.GET)
public ModelAndView show(
        @ModelAttribute("errors") HashMap errors) 
{
    ModelAndView mav = new ModelAndView();

            if(errors.size() > 0){
                mav.addAllObjects(errors);
            }
    mav.setViewName("first.jsp");
    mav.addObject("myObject", new MyObject());

    return mav;
}
}

MyObject एक java.util.List संपत्ति के साथ एक साधारण POJO है, और यह Serializable लागू करता है। किसी कारण से, ModelAndView वापस आने के बाद DispatcherServlet निम्न त्रुटि के साथ pukes:

[12/4/13 12:33:53:177 EST] 00000030 webapp        E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[myDispatcherServlet]: com.ibm.ws.webcontainer.webapp.WebAppErrorReport: SRVE0295E: Error reported: 500
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendError(WebAppDispatcherContext.java:626)
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendError(WebAppDispatcherContext.java:656)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1236)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1210)
at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.sendServerError(DefaultHandlerExceptionResolver.java:309)
at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleConversionNotSupported(DefaultHandlerExceptionResolver.java:297)
at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.doResolveException(DefaultHandlerExceptionResolver.java:130)
at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136)
at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1148)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:985)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
at gov.treas.publicdebt.ie.web.filter.MyDispatcher.doDispatch(MyDispatcher.java:15)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
at gov.treas.publicdebt.ie.web.filter.MyFilter.doFilter(MyFilter.java:67)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3751)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690)

गहराई से खोदना, मुझे यह कारण माना गया:

org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'MyObject' to required type 'java.lang.String'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [MyObject] to required type [java.lang.String]: no matching editors or conversion strategy found

मैं यह नहीं समझ सकता कि यह MyObject को स्ट्रिंग में कनवर्ट करने का प्रयास क्यों कर रहा है। मुझे स्प्रिंग 3.1.0 का उपयोग करने में कोई समस्या नहीं है, लेकिन स्प्रिंग 3.2.3 पर स्विच करने से मेरे डिस्पैचर सर्वलेट को MyObject को आज़माने और बदलने के लिए मजबूर किया गया है। मैं वास्तव में अपने पीओजेओ के लिए कस्टम संपादकों का एक समूह पंजीकृत नहीं करना पसंद करूंगा। क्या किसी के पास कोई विचार है?

IN ADDITION The exception is being caught in the doDispatch method of the DispatchServlet class. In the catch block, ex.printStackTrace() yielded the following result:

[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'MyObject' to required type 'java.lang.String'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [MyObject] to required type [java.lang.String]: no matching editors or conversion strategy found
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:71)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:39)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:589)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap.formatValue(RedirectAttributesModelMap.java:77)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap.addAttribute(RedirectAttributesModelMap.java:69)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap.addAllAttributes(RedirectAttributesModelMap.java:105)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap.addAllAttributes(RedirectAttributesModelMap.java:34)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.method.support.ModelAndViewContainer.addAllAttributes(ModelAndViewContainer.java:212)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.method.annotation.ModelAndViewMethodReturnValueHandler.handleReturnValue(ModelAndViewMethodReturnValueHandler.java:76)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:69)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at gov.treas.publicdebt.ie.web.filter.MyDispatcher.doDispatch(MyDispatcher.java:15)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
[12/4/13 14:22:28:620 EST] 0000004e SystemErr     R     at gov.treas.publicdebt.ie.web.filter.UserTo
1
हमें पूरा स्टैक ट्रेस देखना होगा।
जोड़ा लेखक Sotirios Delimanolis, स्रोत
आपने कहा है कि गहराई से खोना, मैंने यह कारण पाया: मैं खोदने वाले सभी निशान चाहता हूं।
जोड़ा लेखक Sotirios Delimanolis, स्रोत
ऐसा प्रतीत होता है कि, चूंकि आपने एक रीडायरेक्ट निर्दिष्ट किया है, इसलिए स्प्रिंग एक RedirectAttributesModelMap का उपयोग कर रही है, जो 3.1.0 में मौजूद नहीं थी। रीडायरेक्ट विशेषताएँ नक्शा गुणों को "फ्लैश" विशेषताओं में विभाजित करता है, जिन्हें पुनर्निर्देशित अनुरोध में रखा जाता है, और मानक विशेषताएँ जो रीडायरेक्ट यूआरएल बनाने के लिए उपयोग की जाती हैं। सभी मानक विशेषताओं को स्ट्रिंग में परिवर्तनीय होना चाहिए। यह समस्या को हल करने के लिए एक हैकी तरीका सुझाता है ((RedirectAttributesModelMap) mav.getModelMap ())। AddFlashAttribute ("myobject", नया MyObject ()); लेकिन एक बेहतर तरीका ह
जोड़ा लेखक Pace, स्रोत
साथ ही, यदि पर्याप्त पर्याप्त प्रदान किया जाता है तो भी मैं हमेशा एक सही उत्तर चुनता हूं: डी
जोड़ा लेखक JSF_Spring_Dummy, स्रोत
क्या मैंने इसे पहले ही प्रदान नहीं किया है ....?
जोड़ा लेखक JSF_Spring_Dummy, स्रोत
मेरे पास सभी के साथ अपडेट किया गया है
जोड़ा लेखक JSF_Spring_Dummy, स्रोत
@ पेस मुझे लगता है कि आप कुछ पर हैं। विधि में मैप किए गए विधि में, मैं RedirectAttributes का उपयोग कर रहा हूं। मैं उन्हें हटाने का शर्त लगाऊंगा ... अनजाने में प्रासंगिक कोड को छोड़ने के लिए मेरी गलती!
जोड़ा लेखक JSF_Spring_Dummy, स्रोत
@pace बहुत बहुत धन्यवाद! मेरे मामले में मैंने RedirectAttributes का उपयोग किया लेकिन रीडायरेक्ट नहीं किया।
जोड़ा लेखक Slava Semushin, स्रोत