我在Spring MVC中实现了DeferredResult。它在Tomcat8中返回正确的响应,但是当我部署到weblogic 12.1.3时给出了404错误。我试图调试以找出发生了什么,然后在某些点处理程序正在寻找web-inf目录中的视图。我在这里很困惑。
你能帮我理解一下吗?
我正在使用Spring
Weblogic 12.1.3
@RequestMapping(value = "/file/{id}")
@ResponseBody
public DeferredResult<ResponseEntity<Resource>> file(@PathVariable String id) {
DeferredResult<ResponseEntity<Resource>> result = new DeferredResult<>();
try {
final ImageObject image = null;
final Resource fileResource = new FileSystemResource(image.getImagePath().replace("E:", "C:"));
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentLength(fileResource.contentLength());
result.setResult(new ResponseEntity<>(fileResource, headers, HttpStatus.OK));
} catch (Exception e) {
}
return result;
}
提前致谢。
答案 0 :(得分:0)
在我的情况下,Spring错误地将@RestController的@RequestMapping路径和方法的@RequestMapping路径串联在一起。 Spring日志中的结果URI中重复了@RestController的@RequestMapping路径。
我发现的唯一解决方法是为每个必需的DeferredResult方法创建@RestController s ,而无需在方法中指定@RequestMapping路径。
WebLogic 12.2.1.3.0,春季4.3.23。