首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从Java中的CXF服务读取或解析纯字符串响应

问无法从Java中的CXF服务读取或解析纯字符串响应
EN

Stack Overflow用户
提问于 2016-07-22 15:14:24
回答 1查看 456关注 0票数 0

REST服务在SpringMVC中正确实现,部署并返回正确的结果字符串,

代码语言:javascript
复制
@RestController
public class RESTServiceController {

    @GET
    @Produces("application/json") 
    @RequestMapping("/restUrl")
    public String getResult() {
        JSONObject json = new JSONObject();
        json.put("result", Boolean.TRUE);
    }
}

在测试这个Web服务时,我得到了正确的输出,

代码语言:javascript
复制
{"result":true}

问题是调用者通过CXF获取响应对象,但我不知道如何解析响应。我不需要定制对象。我需要的只是直接字符串,我只想看到我的输出字符串。

代码语言:javascript
复制
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。

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

我怎么才能拿回我的直接字符串?有例子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-22 17:03:30

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

如果您想使用Spring,如下所示

代码语言:javascript
复制
@Service
public class RESTServiceController {

    @RequestMapping("/restUrl")
    public @ResponseBody MyClass getResult() {
        return myClass;
    }
}

或CXF,如下所示。

代码语言:javascript
复制
@Service
public class RESTServiceController {

    @GET
    @Produces("application/json") 
    public MyClass getResult() {
        return myClass;
    }
}

注意:您不需要显式地使用json转换,Spring和CXF都必须具有将对象转换为json的特性。

但是,您的问题并没有就此停止,我相信您已经启用了security,它通过登录页面发送重定向(302)响应。您可以通过在客户端启用日志记录来验证服务器的响应。

代码语言:javascript
复制
        WebClient.getConfig(client).getInInterceptors().add(new LoggingInInterceptor());
        WebClient.getConfig(client).getOutInterceptors().add(new LoggingOutInterceptor());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38529957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档