如何从Java Soap Web服务返回JSON



好的,我建议您这样做。我搜索了Internet,并获得了Gson,这使任务变得容易。我通过将结果打印到这样的控制台,然后返回预期的json结果

来对其进行测试。
public String printJson()
{
    ProductBLL productBLL = new ProductBLL();
    List<String> catList = productBLL.getProductCatagories();
    Gson gson = new Gson();
    String jsonCatList = gson.toJson(testList);
    System.out.println("Category List: " + jsonCatList);
}

输出
Category List: ["Book","Music","Movies"]

但是,当我在Java Soap Web服务中尝试它时,它无法正常工作,这意味着Web服务仍在返回XML。

这是使用Gson

的Web服务方法
@WebMethod
public String getCategories()
{
    List<String> catList = ppBll.getProductCatagories();
    Gson gson = new Gson();
    String jsonCatagoryList = gson.toJson(catList);
    return jsonCatagoryList ;
}


输出

<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
    <ns2:getCategoriesResponse xmlns:ns2="http://aman.org/">
        <return>Book</return>
        <return>Music</return>
        <return>Movies</return>
    </ns2:getCategoriesResponse>
</S:Body>

,但我需要它返回json。应该在哪里修改以使其在Web服务中工作?

SOAP Web服务将始终返回XML,可能是您可以创建另一个REST Web服务,该服务将在内部调用SOAP WS并产生JSON。在您的休息下,您可以轻松地做到这一点。

所以步骤1:

创建一个产生JSON的REST WS

步骤2:

从此休息ws调用肥皂ws并将输出转换为您想要的格式。

相关内容

  • 没有找到相关文章

最新更新