gpt4 book ai didi

java - 无法从 Java 中的 CXF REST Web 服务读取或解析纯字符串响应

转载 作者:行者123 更新时间:2023-12-01 09:40:08 26 4
gpt4 key购买 nike

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获取Response对象,但我不知道如何解析Response。我不需要自定义对象。我需要的只是直接字符串,我只想查看我的输出字符串。

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

响应对象没有我在调试器中可以看到的任何信息。

如何取回我的直接字符串?有例子吗?

最佳答案

您正在尝试混合 Spring Rest 和 CxF Rest。使用 Spring Rest 或 CXF Rest。

如果您想使用如下所示的 Spring Rest

@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 Rest 和 CXF 都必须具有将对象转换为 json 字符串的功能。

然而你的问题并不止于此,我相信你已经启用了 spring-security,它正在通过登录页面发送重定向(302)响应。您可以通过启用客户端登录来验证服务器的响应。

        WebClient.getConfig(client).getInInterceptors().add(new LoggingInInterceptor());
WebClient.getConfig(client).getOutInterceptors().add(new LoggingOutInterceptor());

关于java - 无法从 Java 中的 CXF REST Web 服务读取或解析纯字符串响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38529957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com