Spring MVC: добавление JAXB в путь к классам для автоматической сериализации XML - PullRequest
2 голосов
/ 13 сентября 2010

Согласно документации Spring MVC, <mvc:annotation-driven/> конфигурирует поддержку JSON, если Джексон находится в пути к классам, и поддержку XML, если JAXB присутствует в пути к классам. Просто добавив зависимость Джексона в мой pom.xml, я получу поддержку JSON! (см .: Упрощение Ajax весной 3.0 )

Однако после попытки доступа к той же службе с заголовком подтверждения «application / xml» я получаю ответ 406 Not Acceptable. Какой самый простой способ получить JAXB в пути к классам? Что необходимо для включения поддержки XML MarshallingHttpMessageConverter?

Обновление

Взглянув на AnnotationDrivenBeanDefinitionParser, я вижу, что определяет «jaxb2Present». Я установил точку останова вокруг строки 179, чтобы увидеть, действительно ли Jaxb2RootElementHttpMessageConverter регистрируется, как MappingJacksonHttpMessageConverter. Это не ...

Какой самый простой способ добавить JAXB в путь к классам, чтобы он автоматически сериализовал мои запросы XML?

Ответы [ 2 ]

2 голосов
/ 13 сентября 2010

должно работать. Убедитесь, что возвращаемый объект имеет примечание @XmlRootElement в соответствии с требованиями JAXB.

0 голосов
/ 14 сентября 2010

Если вы используете Java 6, JAXB уже находится на пути к классам. Если вы используете Java 5, вам нужно добавить справочную реализацию самостоятельно.

Если вы используете Maven, вы можете добавить в свой pom.xml:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.2</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.2</version>
</dependency>
...