REST服务在SpringMVC中正确实现,部署并返回正确的结果字符串,
@RestController
public class RESTServiceController {
@GET
@Produces("application/json")
@RequestMapping("/restUrl")
public String getResult() {
JSONObject json = new JSONObject();
json.put("result", Boolean.TRUE);
}
}在测试这个Web服务时,我得到了正确的输出,
{"result":true}问题是调用者通过CXF获取响应对象,但我不知道如何解析响应。我不需要定制对象。我需要的只是直接字符串,我只想看到我的输出字符串。
String restServiceURI = "http://www.asite.com/restUrl";
WebClient client = WebClient.create(restServiceURI,true);
Response resp = client.get();
//String entity = (String)resp.getEntity; <-- Also tried this to cast to a string问题是,响应长度为0,状态为302。getEntity InputStream根据调试器显示的内容带回一个EmptyInputStream。
响应对象没有我可以在调试器中看到的任何信息。
我怎么才能拿回我的直接字符串?有例子吗?
发布于 2016-07-22 17:03:30
您正在尝试混合Spring和CxF rest。使用Spring或CXF。
如果您想使用Spring,如下所示
@Service
public class RESTServiceController {
@RequestMapping("/restUrl")
public @ResponseBody MyClass getResult() {
return myClass;
}
}或CXF,如下所示。
@Service
public class RESTServiceController {
@GET
@Produces("application/json")
public MyClass getResult() {
return myClass;
}
}注意:您不需要显式地使用json转换,Spring和CXF都必须具有将对象转换为json的特性。
但是,您的问题并没有就此停止,我相信您已经启用了security,它通过登录页面发送重定向(302)响应。您可以通过在客户端启用日志记录来验证服务器的响应。
WebClient.getConfig(client).getInInterceptors().add(new LoggingInInterceptor());
WebClient.getConfig(client).getOutInterceptors().add(new LoggingOutInterceptor());https://stackoverflow.com/questions/38529957
复制相似问题