0
我正在使用RestTemplate
为了发送一个post请求。事情是这样的:java.net.SocketException:与RestTemplate无效的参数
restTemplate.postForObject(url, fetchImageDataRequest, SimpleImageHolder[].class);
当我创建restTemplate
这样的:
restTemplate = new RestTemplate();
MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
restTemplate.getMessageConverters().add(converter);
,一切工作正常。但是,当我使用在spring.xml创建和定义如下RestTemplate
:
<bean id="reHttpConnectionManager" class="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager">
<property name="params">
<bean class="org.apache.commons.httpclient.params.HttpConnectionManagerParams">
<property name="soTimeout" value="30000"/>
<property name="connectionTimeout" value="30000"/>
<property name="maxTotalConnections" value="300"/>
<property name="defaultMaxConnectionsPerHost" value="50"/>
</bean>
</property>
</bean>
<bean id="reRequestFactory" class="org.springframework.http.client.CommonsClientHttpRequestFactory">
<property name="readTimeout" value="3000" />
<constructor-arg>
<bean id="httpClient" class="org.apache.commons.httpclient.HttpClient">
<constructor-arg>
<bean class="org.apache.commons.httpclient.params.HttpClientParams" />
</constructor-arg>
<property name="httpConnectionManager" ref="reHttpConnectionManager" />
<property name="state">
<bean class="org.apache.commons.httpclient.HttpState" />
</property>
</bean>
</constructor-arg>
</bean>
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<constructor-arg ref="reRequestFactory" />
</bean>
我得到一个java.net.SocketException: Invalid argument
例外。试图解决这个问题。
全stacke跟踪:
org.springframework.web.client.ResourceAccessException: I/O error: Invalid argument; nested exception is java.net.SocketException: Invalid argument
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:453)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:279)
请发布完整的堆栈跟踪。 –
@SotiriosDelimanolis - 添加。谢谢! – Avi