Komunikat o błędzie oznacza, że klient usługi sieciowej próbował odbierać dane ze zdalnej usługi WWW przez sieć, ale żadne dane nie zostały odebrane przez określony czas, więc klient usługi WWW przestał czekać na dane. otrzymać.
Jedną z możliwych przyczyn może być zbyt niska właściwość timeout
. Domyślne wartości domyślne cxf wynoszą odpowiednio 30000 i 60000 ms. Można je zmienić w zależności od tego, jak tworzysz swojego klienta.
Jeśli tworzysz klienta przy użyciu kodu java można użyć:
//1 minute for connection
((BindingProvider) wsPort).getRequestContext().put("com.sun.xml.ws.connect.timeout", 1 * 60 * 1000);
//3 minutes for request
((BindingProvider) wsPort).getRequestContext().put("com.sun.xml.ws.request.timeout", 3 * 60 * 1000);
Jeśli używasz Spring, można użyć mapę takiego:
<util:map id="jaxwsProperties">
<entry key="com.sun.xml.internal.ws.request.timeout">
<value type="java.lang.Integer">120000</value>
</entry>
<entry key="com.sun.xml.internal.ws.connect.timeout">
<value type="java.lang.Integer">60000</value>
</entry>
</util:map>
Następnie ustaw tę mapę do konfiguracja <jaxws:client.../>
.
porządku chory spróbować :) i tak może źle żądanie mydło formatu może również sprawcą błędu ?? ,, przypadkowo wysłał żądanie mydło z zerową wartości/"" następnie nagle otrzymałem odpowiedź mydła ws .. – irumi
Właściwości zmieniły odpowiednio nazwy na 'javax.xml.ws.client.connectionTimeout' i' javax.xml.ws.client.receiveTimeout'. –