WebServiceTemplateを使用してSOAPサービスを呼び出しているときに、以下の例外が発生しています。私は、エンドポイントのURLに接続するためにプロキシを使用しています。java.net.SocketTimeoutException:読み取りタイムアウトしました。WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:561)
以下は私のXMLの構成です:Webサービスの呼び出し中に
<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
<property name="marshaller" ref="jaxb2Marshaller"></property>
<property name="unmarshaller" ref="jaxb2Marshaller"></property>
<property name="defaultUri"><value>${ws.url}</value></property>
<property name="interceptors">
<list>
<ref local="wsClientSecurityInterceptor"/>
</list>
</property>
<property name="messageSender" ref="messageSender"></property>
</bean>
<bean id="messageSender" class="org.springframework.ws.transport.http.CommonsHttpMessageSender">
<constructor-arg ref="httpClient"></constructor-arg>
</bean>
<!-- This is my custom class to set the proxy -->
<bean id="proxyConfig" class="com.somepackage.client.ProxyConfiguration">
<property name="proxyHostPlusPort"><value>${proxy.host}:${proxy.port}</value></property>
</bean>
<bean id="httpParams" class="org.apache.commons.httpclient.params.HttpClientParams">
<property name="soTimeout" value="120000" />
</bean>
<bean id="httpClient" class="org.apache.commons.httpclient.HttpClient">
<property name="hostConfiguration" ref="proxyConfig" />
<property name="params" ref="httpParams" />
</bean>
<bean id="jaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="packagesToScan">
<list><value>com.aaa.wsdl</value></list>
</property>
</bean>
<bean id="wsClientSecurityInterceptor"
class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="securementActions" value="UsernameToken" />
<property name="securementUsername"><value>${ws.username}</value></property>
<property name="securementPassword"><value>${ws.password}</value></property>
<property name="securementPasswordType" value="PasswordText" />
</bean>
は時々私は例外の下に取得しています:
org.springframework.ws.client.WebServiceIOException: I/O error: Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:561)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:383)
私はsoTimeoutを設定しているにもかかわらず、私はこの問題を取得しています。私が疑うところは、プロキシが2分以上ダウンしているときに問題が発生するということです。
どうすればこの問題を解決できますか? soTimeoutだけで十分か、いくつかのパラメータを設定する必要がありますか?
ありがとうございました。
あなたはより信頼性の高いプロキシを使用するよりも、他の2分以上、のためにダウンしているプロキシを取り除くことはできません。あなたが何を求めているのか不明です。 – EJP
プロキシまたは実際のエンドポイントシステムに実際に問題があったかどうかをどのように確認できますか? – rupesh