使用 Spring-boot 1.5.10.RELEASE,我得到 response.body 为空。
这是我如何使用 RestTemplate
RestTemplate restTemplate = new RestTemplate();
List<ClientHttpRequestInterceptor> interceptors = new ArrayList<>();
interceptors.add(new LoggingRequestInterceptor());
restTemplate.setInterceptors(interceptors);
String url = "http://someurl/Commands";
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.add("cmd", "{\"operation\":\"getSomeDetails\"}}");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(params, headers);
ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
System.out.println("This is always null: " + response.getBody());
Run Code Online (Sandbox Code Playgroud)
虽然上面的程序总是打印 null,但下面的拦截器打印有效的响应正文
public class LoggingRequestInterceptor implements ClientHttpRequestInterceptor {
final static Logger log = LoggerFactory.getLogger(LoggingRequestInterceptor.class);
@Override
public ClientHttpResponse intercept(final HttpRequest request, final byte[] …Run Code Online (Sandbox Code Playgroud) 我正在使用Apache CXF 3.0.0并且几乎没有使用JAX-RS配置定义的服务.我们使用Spring Framework进行分层配置.这些服务的这些输入/输出是JSON字符串.
我正在寻找一个Junit测试用例的工作示例来验证我的服务.还可以在Maven Build中配置Test.
我提到了https://cwiki.apache.org/confluence/display/CXF20DOC/JAXRS+Testing
是推荐的做法吗?尽管如此,我试图设置但无法成功,无法理解哪里去了什么.