This XML file does not appear to have any style information associated with it. The document tree is shown below

20,973

The output from the controller looks perfectly valid - from your description it looks like your "PUT" request worked cleanly, returned the RedirectView, and in the redirected method, it returned "AdditionalLanguages" which I am assuming you have annotated with @ResponseBody, which is the reason why Spring used a MessageConverter(in this this case Jaxb) to convert your AdditonalLanguages response to XML.

So in short, the output is a value because likely you have mapped the response from the redirected view to @ResponseBody.

Share:
20,973
Kanagavelu Sugumar
Author by

Kanagavelu Sugumar

love to be a problem solver & be a designer..

Updated on July 31, 2022

Comments

  • Kanagavelu Sugumar
    Kanagavelu Sugumar almost 2 years

    I am using SPRING MVC. From the client to controller I did a PUT with the below xml.

    <http-request method="PUT" url="/serviceproviders/{sp_id}/accessNumbers/{new_an_id}/languages" mime="application/xml">
            <content>
            <![CDATA[
             <additionalLanguages xmlns="http://www.XXX.com/pcs/model/schemas">
             <additionalLangIds>1003</additionalLangIds>
             </additionalLanguages>
            ]]>
            </content>
    

    additionalLanguages is java class and declared like below

     @XmlRootElement(name = "additionalLanguages")
     @XmlAccessorType(XmlAccessType.NONE)
     public  class AdditionalLanguages implements Serializable{
         @XmlElement(name="additionalLangIds")
         private String sLanguageIDs = ""; 
         //getter & setter for sLanguageIDs 
     }
    

    Controller is returning view of "org.springframework.web.servlet.view.RedirectView". And this view is inherently calling GET for the same url "/serviceproviders/{sp_id}/accessNumbers/{new_an_id}/languages" which is returning instance of AdditionalLanguages class.

    Finally I am expecting to receive a response in browser "1003" which is nothing but

    <HTML>
    <BODY>
    <additionalLanguages xmlns="http://www.XXX.com/pcs/model/schemas">
    <additionalLangIds>1003</additionalLangIds>
    </additionalLanguages>
    </BODY>
    </HTML>
    

    But what i got is the below "warning and XML content" in the browser instead of "1003" value

    This XML file does not appear to have any style information associated with it. The document tree is shown below.
    <additionalLanguages xmlns="http://www.radisys.com/pcs/model/schemas">
    <additionalLangIds>1003</additionalLangIds>
    </additionalLanguages>
    

    This output is not mapped with client expectation and This is causing the below error message at client side.

    Execute action [repitition=0]: PUT -http://{SERVER}/PcsRESTApi/serviceproviders/1/accessNumbers/2020/languages
    ---HTTP RESPONSE---
    HTTP Status: 500 - Internal Server Error
    Response Headers:
      Date=Sat, 07 Jul 2012 23:19:45 GMT
      Server=Apache/2.2.16 (Unix) mod_jk/1.2.28
      errorCode=unknown
      errorMessage=Could not find acceptable representation
      Accept-Charset=big5, big5-hkscs, compound_text, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-jp, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-13, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-solaris, x-euc-jp-linux, x-euc-tw, x-eucjp-open, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1381, x-ibm1383, x-ibm33722, x-ibm737, x-ibm834, x-ibm856, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm964, x-ibm970, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jisautodetect, x-johab, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms950-hkscs, x-mswin-936, x-pck, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp
      Content-Length=5243
      Connection=close
      Content-Type=application/xml
    Response Body:
    unknown: Could not find acceptable representation
    org.springframework.web.HttpMediaTypeNotAcceptableException Could not find acceptable representation
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.writeWithMessageConverters(AnnotationMethodHandlerAdapter.java:954)
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.handleResponseBody(AnnotationMethodHandlerAdapter.java:898)
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.getModelAndView(AnnotationMethodHandlerAdapter.java:847)
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:423)
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:774)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    

    My question is why the output is not a value? and why it is XML? What i am missing here.

    Kindly help me. I am struggling for long time. You are my only hope.


    Resolution
    Only add @ResponseBody when you are returning a value(object) directly from the controller. If you are performing a redirect url; don't add this annotations.

    • home
      home almost 12 years
      Why did you add the SOAP tag? This does not seem to be about SOAP.