java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredDoc

weixin_44831356 2020-12-20 08:13:04
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl cannot be cast to [Ljava.lang.Object


客户服务端是 WSDL created by Apache Axis version: 1.4

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="iptv" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="iptv" xmlns:intf="iptv" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
<wsdl:types>
<schema targetNamespace="iptv" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="CSPResult">
<sequence>
<element name="Result" type="xsd:int"/>
<element name="ErrorDescription" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>

<wsdl:message name="ExecCmdResponse">

<wsdl:part name="ExecCmdReturn" type="impl:CSPResult">

</wsdl:part>

</wsdl:message>

<wsdl:message name="ExecCmdRequest">

<wsdl:part name="CSPID" type="soapenc:string">

</wsdl:part>

<wsdl:part name="LSPID" type="soapenc:string">

</wsdl:part>

<wsdl:part name="CorrelateID" type="soapenc:string">

</wsdl:part>

<wsdl:part name="CmdFileURL" type="soapenc:string">

</wsdl:part>

</wsdl:message>

<wsdl:portType name="CSPRequest">

<wsdl:operation name="ExecCmd" parameterOrder="CSPID LSPID CorrelateID CmdFileURL">

<wsdl:input message="impl:ExecCmdRequest" name="ExecCmdRequest">

</wsdl:input>

<wsdl:output message="impl:ExecCmdResponse" name="ExecCmdResponse">

</wsdl:output>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="ctmsSoapBinding" type="impl:CSPRequest">

<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="ExecCmd">

<wsdlsoap:operation soapAction=""/>

<wsdl:input name="ExecCmdRequest">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="iptv" use="encoded"/>

</wsdl:input>

<wsdl:output name="ExecCmdResponse">

<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="iptv" use="encoded"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="CSPRequestService">

<wsdl:port binding="impl:ctmsSoapBinding" name="ctms">

<wsdlsoap:address location="http://mosapi/mos-api/services/ctms"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>



我的代码是:
public boolean requestInjection(VideoInfo videoInfo) {

try {
String xmlStr = createXMLStr(videoInfo);

org.apache.axis.client.Service service = new org.apache.axis.client.Service();
Call call = (Call) service.createCall();
call.setTimeout(new Integer(20000));
call.setTargetEndpointAddress(new URL(INJECTION_URL));
// call.setEncodingStyle("utf-8");
//// call.setUseSOAPAction(true);
//// call.setSOAPActionURI("");
call.setOperationName(new QName("iptv", "ExecCmd"));// WSDL里面描述的接口名称
call.addParameter(new QName("iptv", "CSPID"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("iptv", "LSPID"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("iptv", "CorrelateID"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("iptv", "CmdFileURL"), XMLType.XSD_STRING, ParameterMode.IN);

call.setReturnType(XMLType.SOAP_DOCUMENT); //要返回的数据类型(自定义类型)

Object[] o = (Object[]) call.invoke(new Object[]{CSPID, LSPID, CorrelateID, ftpUrl + xmlStr});


运行后 报错,不然就是取不到返回数据,请教大神,这个是怎么回事??
...全文
2658 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepSayingNo 2020-12-21
  • 打赏
  • 举报
回复
你VideoInfo实现了serializable接口吗

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧