我创建了一个 Jersey 客户端程序来使用返回 XML 的 REST Web 服务。
Client client = Client.create();
WebResource webResource = client.resource("http://xyz:abc/myRestservice/getval");
我使用 webResource get 方法将返回值存储在字符串变量中:
String s = webResource.get(String.class);
我没有错误。但变量“s”显示 null 作为输出:
System.out.println("- "+s);
输出:
-
Process exited with exit code 0.
当我在本地测试相同的 Web 服务时(使用没有客户端程序的 JDeveloper IDE),它返回值。
更新:
我发现变量“s”由于 Web 服务程序中的异常(如下所述)而显示为空。
Web 服务程序使用不透明 (OracleTypes.OPAQUE) 变量来存储从 ORACLE 数据库中的存储函数检索到的 XMLTYPE 值。然后使用强制转换将 opaque 变量分配给新的 XMLType。这在 JDeveloper IDE 内部 weblogic 服务器中进行测试时以某种方式起作用。但是,当我在远程 weblogic 服务器中部署此 Web 服务并尝试使用客户端程序使用时,它不起作用。我得到一个例外 - “oracle.sql.OPAQUE 不能转换为 oracle.xdb.XMLType”。
我猜很可能是由于远程weblogic服务器中缺少一些jar,但不确定是哪个jar。