@ResponseBody неожиданный формат - PullRequest
1 голос
/ 17 ноября 2010

У меня есть Spring MVC-контроллер для моего простого old-xml веб-сервиса со следующим методом:

@RequestMapping(
        value = "/trade/{tradeId}",
        method = RequestMethod.GET)
@ResponseBody
public String getTrade(@PathVariable final String tradeId) {
    return tradeService.getTrade(tradeId).getXml();
}

Какой тип работает, вывод в моем браузере

<?xml version="1.0" encoding="UTF-8"?><Trade id="foo"/>

Но если я "просматриваю источник", то фактический результат будет

<string>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;Trade ...

Это не то, что я хотел, очевидно.Как получить реальный XML-код?

1 Ответ

1 голос
/ 17 ноября 2010

Похоже, что вы пытаетесь писать XML напрямую, но преобразователи xml предполагают, что вы даете им объекты, и они упорядочивают его в XML.

Вам необходимо зарегистрировать StringHttpMessageConverter перед преобразователями xml. Как:

<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
            <property name="messageConverters">
                <list>
                    <bean
                        class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
                    <bean
                        class="org.springframework.http.converter.ResourceHttpMessageConverter" />
                    <bean
                        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
                    <bean
                        class="org.springframework.http.converter.StringHttpMessageConverter" />
                    <bean
                        class="org.springframework.http.converter.feed.AtomFeedHttpMessageConverter" />
                    <bean
                        class="org.springframework.http.converter.feed.RssChannelHttpMessageConverter" />
                    <bean
                        class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
                    <bean
                        class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
           </list>
         </property>
    </bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...