获取“引起:WebServiceIOException I / O错误:来自服务器的文件意外结束”,尽管使用相同的证书可以与SOAP UI一起使用

时间:2017-08-17 13:26:30

标签: soapui spring-ws

我已将模板定义为

<bean id="template" class="org.springframework.ws.client.core.WebServiceTemplate">
    <property name="messageSender">
        <bean class="org.springframework.ws.transport.http.HttpsUrlConnectionMessageSender">
            <property name="trustManagers">
                <bean class="org.springframework.ws.soap.security.support.TrustManagersFactoryBean">
                    <property name="keyStore" ref="myTrustStore" />
                </bean>
            </property>
            <property name="keyManagers">
                <bean class="org.springframework.ws.soap.security.support.KeyManagersFactoryBean">
                    <property name="keyStore" ref="myKeyStore" />
                    <property name="password" value="${cdds.webservice.keystore_password}" />
                </bean>
            </property>
        </bean>
    </property>

它可以正常使用X证书,但只要我使用Y证书就会抛出以下错误

  

引起:org.springframework.ws.client.WebServiceIOException:I / O错误:来自服务器的文件意外结束;嵌套异常是java.net.SocketException:来自服务器的文件意外结束   在org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:561)   在org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390)   在org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:383)   在org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:373)

根本原因异常

  

引起:java.net.SocketException:来自服务器的文件意外结束   
在sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:772)   
在sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)   
在sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:769)   
在sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)   
在sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1323)   
在java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)   
在sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)   
在org.springframework.ws.transport.http.HttpUrlConnection.getResponseCode(HttpUrlConnection.java:143)   
在org.springframework.ws.transport.http.AbstractHttpSenderConnection.hasError(AbstractHttpSenderConnection.java:46)   
在org.springframework.ws.client.core.WebServiceTempl
ate.hasError(WebServiceTempl
ate.java:673)   
在org.springframework.ws.client.core.WebServiceTempl
ate.doSendAndReceive(WebServiceTempl
ate.java:607)   
在org.springframework.ws.client.core.WebServiceTempl
ate.sendAndReceive(WebServiceTempl
ate.java:555)>

然而,当我通过设置密钥库(Y证书)和密码通过SOAP UI调用相同的Web服务时,它工作正常。

无法理解,为什么代码会为Y证书抛出“来自服务器的意外结束”,因为它通过SOAP UI工作

0 个答案:

没有答案