如何解决:java.lang.IllegalArgumentException: Part * parameters should be of type *,not java.lang.String


求助!!!
java通过JaxWsDynamicClientFactory 调用远程wsdl服务,老是抛错,不知道是我本地代码有问题,还是远程服务有问题。远程服务是一家集成平台的wsdl。


调用webservice代码如下:

public String process(JSONObject message) throws Exception {
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("***WSEntry?wsdl");
        HTTPConduit http = (HTTPConduit)client.getConduit();
        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();//策略
        httpClientPolicy.setConnectionTimeout(30*1000);//连接超时(30秒)
        httpClientPolicy.setAllowChunking(false);
        httpClientPolicy.setReceiveTimeout(30*1000);//响应超时(30秒)
        http.setClient(httpClientPolicy);
        String requestNo = message.getString("requestNo");
        String reqMessage = buildReqMessage(message);
        log.info("SurgeryStatusSyncProcess reqMessage={}",reqMessage);
        String resultMessage = null;
        try {
            Object obj[] = client.invoke("invoke","1111");//OPERATION_NAME
            resultMessage = (String)obj[0];
            return StringUtils.isEmpty(resultMessage) ? "结果为空" : parseResultStatus(resultMessage);
        }catch (Exception e){
            throw e;
        }
}

返回异常代码:

java.lang.IllegalArgumentException: Part {www.WondersHSBP.com}parameters should be of type com.wondershsbp.InvokeRequest, not java.lang.String
	at org.apache.cxf.jaxb.io.DataWriterImpl.checkPart(DataWriterImpl.java:296) ~[cxf-rt-databinding-jaxb-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:222) ~[cxf-rt-databinding-jaxb-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:118) ~[cxf-core-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.wsdl.interceptors.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) ~[cxf-rt-wsdl-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) ~[cxf-core-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:528) ~[cxf-core-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:439) ~[cxf-core-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:354) ~[cxf-core-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:312) ~[cxf-core-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:332) ~[cxf-core-3.5.2.jar!/:3.5.2]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:318) ~[cxf-core-3.5.2.jar!/:3.5.2]

远程服务wsdl文件如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions targetNamespace="www.WondersHSBP.com" name="HSBPService"
    xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:tns="www.WondersHSBP.com"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
        <xsd:schema targetNamespace="www.WondersHSBP.com"
            xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/"
            xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
            xmlns:tns="www.WondersHSBP.com"
            xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
            <xsd:element name="invokeRequest">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="parameter" type="xsd:string"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="invokeResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="result" type="xsd:string"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="invokeRequest">
        <wsdl:part name="parameters" element="tns:invokeRequest"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="invokeResponse">
        <wsdl:part name="parameters" element="tns:invokeResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:portType name="HSBPServicePortType">
        <wsdl:operation name="invoke">
            <wsdl:input name="invokeRequest" message="tns:invokeRequest"></wsdl:input>
            <wsdl:output name="invokeResponse" message="tns:invokeResponse"></wsdl:output>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HSBPServiceBinding11" type="tns:HSBPServicePortType">
        <soap11:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <wsdl:operation name="invoke">
            <soap11:operation style="document" soapAction="www.WondersHSBP.com/invoke"/>
            <wsdl:input name="invokeRequest">
                <soap11:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="invokeResponse">
                <soap11:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="HSBPServiceBinding12" type="tns:HSBPServicePortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <wsdl:operation name="invoke">
            <soap12:operation style="document" soapAction="www.WondersHSBP.com/invoke"/>
            <wsdl:input name="invokeRequest">
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="invokeResponse">
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HSBPService12">
        <wsdl:port name="HSBPServicePort12" binding="tns:HSBPServiceBinding12">
            <soap12:address location="http://172.16.100.80:18116/wondersHSBP/WSEntry"/>
        </wsdl:port>
    </wsdl:service>
    <wsdl:service name="HSBPService11">
        <wsdl:port name="HSBPServicePort11" binding="tns:HSBPServiceBinding11">
            <soap11:address location=""/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值