如何在Jboss EAP 6.2上设置HttpServletResponse?

时间:2015-06-11 20:50:37

标签: java spring-mvc jboss

我有一个简单的方法,我需要将contentType更改为“text / plain”,但是当我使用Jboss EAP 6.2时,它将被忽略,返回的值为“application / json。

@RestController
@RequestMapping("/upload")
public class UploadController {
    ...
    @RequestMapping(method = RequestMethod.POST)
    public Result foo(MultipartFile arquivo, HttpServletResponse response) {
        response.setContentType("text/plain");
        return uploadService.saveFile(arquivo);
    }
}

我正在使用SpringMVC(休息控制器)和Jackson来解析JSON。当我使用Jetty而不是Jboss时,完全相同的方法工作正常。

我不能使用@RequestMapping(produce =“text / plain”)因为实际的方法有更多的逻辑,有时它会返回application / json其他text / plain,这取决于请求是否来自IE9浏览器与否。

有人可以告诉我如何在Jboss上设置contentType?

1 个答案:

答案 0 :(得分:0)

不幸的是,我能为Jboss工作的唯一方法是为IE9创建一个不同的方法:

@RequestMapping(value = "/ie9", method = RequestMethod.POST, produces = MediaType.TEXT_PLAIN_VALUE)
public String fooIE9(@RequestParam("arquivo") MultipartFile arquivo) throws JsonProcessingException {
    ObjectWriter ow = new ObjectMapper().writer();
    return ow.writeValueAsString(uploadService.saveFile(arquivo));
} 
相关问题