好的,我已经按照您的建议提出了我的测试代码。我搜索了互联网,得到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
@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服务中起作用?
答案 0 :(得分:2)
SOAP Web服务将始终返回XML,也许您可以创建另一个REST Web服务,该内部将在内部调用SOAP WS并生成JSON。借助REST,您可以轻松做到这一点。
所以 步骤1:
创建一个生成JSON的REST WS
第2步:
从此REST WS调用SOAP WS,并将输出转换为所需的格式。