1、java.lang.ClassCastException: org.apache.xerces.dom.DocumentImpl cannot be cast to java.lang.String

cfx服务端代码参考https://blog.csdn.net/zwahut/article/details/100923439

xfire客户端代码如下:


import org.codehaus.xfire.client.Client;
import java.net.URL;
import java.net.URLDecoder;public class Test {private static String WSDL = "";static{WSDL = "http://localhost:8080/userWebService?wsdl";}public static void main(String[] args){getAllUsers();}public static void getAllUsers() {String result = "";try {Client client = new Client(new URL(WSDL));Object[] results = client.invoke("getUserByName", new Object[]{"李四"});result = URLDecoder.decode((String)results[0],"utf-8");System.out.println(result);} catch (Exception e) {e.printStackTrace();}}}

运行报错,错误信息:

java.lang.ClassCastException: org.apache.xerces.dom.DocumentImpl cannot be cast to java.lang.Stringat com.chinaoly.Test.getAllUsers(Test.java:35)at com.chinaoly.Test.main(Test.java:22)

错误原因是返回结果需要转换成Document对象,修改代码如下:


import org.codehaus.xfire.client.Client;
import org.w3c.dom.Document;import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.StringWriter;
import java.net.URL;
import java.net.URLDecoder;public class Test {private static String WSDL = "";static{WSDL = "http://localhost:8080/userWebService?wsdl";}public static void main(String[] args){getAllUsers();}public static void getAllUsers() {String result = "";try {Client client = new Client(new URL(WSDL));Object[] results = client.invoke("getUserByName", new Object[]{"李四"});Document d = (Document)results[0];System.out.println(toFormatedXML(d));System.out.println(result);} catch (Exception e) {e.printStackTrace();}}public static String toFormatedXML(Document doc) throws Exception {TransformerFactory transFactory = TransformerFactory.newInstance();Transformer transFormer = transFactory.newTransformer();transFormer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");DOMSource domSource = new DOMSource(doc);StringWriter sw = new StringWriter();StreamResult xmlResult = new StreamResult(sw);transFormer.transform(domSource, xmlResult);return sw.toString();}
}

运行结果:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><return><id>001</id><name>李四</name></return>

xfire客户端获取xcf服务端接口解析问题相关推荐

  1. RemObjects(一)客户端远程调用服务端接口过程

    RemObjects SDK 是高度封装的产物,对OOP发挥极致. 本文将以RemObjects SDK最简单的DEMO--FirstSample为例, 介绍客户端是如何完成远程调用服务端接口的全过程 ...

  2. 接口-服务端接口客户端接口

    记得刚工作就开始纠结接口这个问题,纠结到现在,总算是从头到尾摸索了一遍. 首先,服务端接口,是指我这个系统作为服务,然后其他的系统来调我.首先,接口,双方会定义一定的规范,即我这个系统,和调用我这个系 ...

  3. app微信支付-java服务端接口 支付/查询/退款

    app微信支付-java服务端接口 支付-查询-退款 个人看微信的文档,看了很多前辈的写法,终于调通了,在这里做一下记录. 首先来定义各种处理类(微信支付不需要特殊jar包,很多处理需要自己封装,当然 ...

  4. 移动端与PHP服务端接口通信流程设计(基础版)

    为什么80%的码农都做不了架构师?>>>    针对 --->非开放性平台 --->公司内部产品 接口特点汇总: 1.因为是非开放性的,所以所有的接口都是封闭的,只对公司 ...

  5. 微信个人号客服系统淘宝客发单机器人sdk服务端接口列表

    微信个人号客服系统淘宝客发单机器人sdk服务端接口列表 case HeartBeatReq: {// 客户端发送的心跳包heartBeatReqHandler.handleMsg(ctx, msgVo ...

  6. SpringBoot 服务端接口公网远程调试,并实现 HTTP 服务监听

    前后端分离项目中,在调用接口调试时候,可以通过cpolar内网穿透将本地服务端接口模拟公共网络环境远程调用调试,本次教程以Java服务端接口为例. 1. 本地环境搭建 1.1 环境参数 JDK1.8 ...

  7. 全新版个人博客小程序,无需开发服务端接口即可使用

    介绍: 全新版个人博客小程序,服务端使用的是Bmob后端云,无需开发服务端接口即可使用,快速便捷,代码简洁,功能包括文章列表,文章分类列表,赞赏功能,签到,收藏文章,查看文章,点赞文章,消息通知,评论 ...

  8. wcf高并发 mysql_WCF 高并发时客户端发送和服务端接收存在等待或延迟

    前提: .net版本: .net framework 4.5.2(服务端),.net framework 3.5(客户端) 服务器:8核E5420 2.5GHZ,16G内存,1万转HDD磁盘 wind ...

  9. 阿里App支付服务端接口开发(含后台异步回调,退款)

    1.引入相关包文件 maven导入方式: <dependency><groupId>com.alipay</groupId><artifactId>sd ...

最新文章

  1. 破局传统算法痛点,腾讯安全首提基于跨模态检索的二进制代码-源代码匹配
  2. 怎样用HTML5 Canvas制作一个简单的游戏
  3. 变频电源要怎么测定额定容量
  4. python 删除文件、目录_python实现删除文件与目录的方法
  5. .NET 的过去、现在和未来
  6. 最优间隔分类器-SVM
  7. 用 lastIndexOf()、substr()、split()方法截取一段字符串
  8. python 连接数据库 慢_python自动结束mysql慢查询会话的实例代码
  9. 微信小程序代码大全 - 小程序开发福利
  10. 2020-12-30 PMP 群内练习题 - 光环
  11. 国产管理软件勒索病毒大爆发
  12. Vivado_ILA IP核
  13. 使用burp suite验证是否存在csrf漏洞
  14. shared_ptr中的owner_before解析(最易懂,最全面)
  15. 西门子免授权CNC数控系统数据采集c#、C、python都支持,可支持再各种操作系统上运行,无须西门子OPC,支持828D 840dsl 808 802dsl 840d 810d 西门子数控DNC程序
  16. 拼多多不补单有什么后果?怎么避免补单风险?
  17. 剑指XX游戏(六) - 轻松搞定面试中的红黑树问题
  18. [LightOJ1070]Algebraic Problem
  19. The ENU localization is not supported by this SQL Server media
  20. 待业五年后的找工作经历

热门文章

  1. Educoder————空瓶换酒
  2. 最终一战柯洁再负AlphaGo,此后再无围棋人机大战
  3. WIN7中组件服务中的DCOM配置找不到Microsoft Excel应用程序的解决办法和
  4. 五年从程序员到架构师,这是我见过史上最好程序员的职业规划
  5. (嵌入式)I2C温湿度采集
  6. 【OpenGL】GLES20.glClear
  7. 基于WEB的学生综合测评管理系统
  8. mysql三大特性_数据库四大特性
  9. 'django-admin' 不是内部或外部命令,也不是可运行的程序 或批处理文件。问题处理
  10. Maven基础(2-1):maven详解2