Alguém, sabe como criar o resolver para Xml, tentei criar usando as documentações mas não consegui.
Alguém, sabe como criar o resolver para Xml, tentei criar usando as documentações mas não consegui.
Oi Marcos,
Adiciona o jackson-xml(https://github.com/FasterXML/jackson-dataformat-xml) no pom.xml e informa no método do seu controller que vc quer retornar application/xml.
Ola Alberto,
poderia ser um pouco mais especifico, creio que meu conhecimento seja um pouco limitado, não consegui abstrair no que se refere a retornar application/xml, e não preciso fazer nenhuma configuração no AppWebConfiguration.class ?
desde já agradeço a ajuda...
Olá Marco,
O que o Alberto quis dizer foi que no seu pom.xml
você deve adicionar as dependências do jackson-xml:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.6.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
<version>4.4.1</version>
</dependency>
E no controller:
@RequestMapping(value = "url", produces = {"application/xml" })
Vê se isso já resolve. Não testei.
Alberto, acho que ele vai ter que mudar o context negotiation não?
Abraço
Olá Marco, Conforme orientado nas aulas, para fazer com que apresente os dados no formato XML é preciso:
1) Criar classe XmlResolver implementando a interface ViewResolver, semelhante a classe criada para o JSON:
public class XmlViewResolver implements ViewResolver {
@Override
public View resolveViewName(String viewName, Locale locale) throws Exception {
MappingJackson2XmlView xmlView= new MappingJackson2XmlView();
xmlView.setPrettyPrint(true);
return xmlView;
}
}
2) Adicionar esta classe à lista de Resolvers no método contentNegotiationViewResolver da classe AppWebConfiguration:
//metodo para retornar views distintas, em HTML e JSON utilizando padrao Content Negociation
@Bean
public ViewResolver contentNegotiationViewResolver(ContentNegotiationManager manager){
...
viewResolvers.add(new XmlViewResolver()); //adiciona XML
...
}
3) No meu caso foi necessário adicionar esta biblioteca no pom.xml:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.8.4</version>
</dependency>
Desta forma funcionou corretamente, por exemplo, acessando a url :
http://localhost:8080/casadocodigo/produtos/detalhe/2.xml
Espero ter ajudado!