-
1. SOAPPROXY IS NOT PROPAGATING THE HTTPCLIENT PROPERTIES
tcunning Apr 22, 2011 11:25 AM (in response to munimanjunath)Have you tried specifying a http-client-properties file using the file attribute? See the webservice_proxy_security quickstart for an example.
-
2. Re: SOAPPROXY IS NOT PROPAGATING THE HTTPCLIENT PROPERTIES
munimanjunath Apr 22, 2011 12:04 PM (in response to tcunning)Yes I tried to put the settings in properties file also but no luck.
I created a webservice which go into waitstate then created a proxy with the above http-client properties settings. In the proxy I configured both http.connection.timeout and http.socket.timeout.
I put those properties in http-client.properties as well as within the client-properties tag but there is no socket timeout. Always httpgateway synchronous timeout happening.
-
3. SOAPPROXY IS NOT PROPAGATING THE HTTPCLIENT PROPERTIES
tcunning Apr 22, 2011 1:43 PM (in response to munimanjunath)Maybe set wsdlUseHttpClientProperties to false explicitly?
Also, have you debugged into httpclient and checked what properties are actually being set? I would do that for confirmation.
-
4. SOAPPROXY IS NOT PROPAGATING THE HTTPCLIENT PROPERTIES
h.wolffenbuttel Apr 26, 2011 4:24 AM (in response to munimanjunath)Hi munimanjunath kalapati
The problem which you are having lies probably in the way you have declared your parameters. Because SOAPProxy is nothing more than a wrapper around the HTTPRouter, you have to abide by the same configuration rules. If you want to set any property settings, you have to set them on the 'endpointUrl' property. So this will mean you have to adjust your configuration to something like this:
<action class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"
name="SourceValidationProxy">
<property name="wsdl" value="file:///${wsdlbasedir}/ManageTransactionService.wsdl" />
<property name="endpointUrl" value="http://www.someEndPoint.com/">
<http-client-property name="http.socket.timeout" value="6000"/>
</property>
</action>
Regards,
Hans
-
5. Re: SOAPPROXY IS NOT PROPAGATING THE HTTPCLIENT PROPERTIES
tomeicher Feb 24, 2012 8:05 AM (in response to h.wolffenbuttel)Hello, the "quickstarts/webservice_proxy_security/jboss-esb-template.xml" mentioned earlier has the "file" on the same level, not below "endpointUrl".
<action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"> <property name="wsdl" value="internal://jboss.ws:context=webservice_proxy_security,endpoint=HelloWorldWS"/> <property name="endpointUrl" value="https://localhost:8443/webservice_proxy_security/HelloWorldWS"/> <property name="file" value="/META-INF/httpclient-8443.properties"/> </action>
which is what "is written everywhere". Your alternative looks good, because it does not require another redirection (another file).
However, most "http timeout articles" state that you now need to programm, add and configure a custom protocol Configurer,
to again read the timeout params and set them to HttpClient directly. Still testing and debugging...
Unbelievable, how complicated it is to put a timeout to a SOAPProxy or HttpRouter...
Cheers, Tom.
Wrong assumptions fixed
-
6. Re: SOAPPROXY IS NOT PROPAGATING THE HTTPCLIENT PROPERTIES
tomeicher Feb 24, 2012 9:26 AM (in response to tomeicher)It's all in vain.
org.jboss.soa.esb.http.HttpClientFactory.createHttpClient(Properties) swallows all but "file", "max-total-connections" and "max-connections-per-host".
So we need to either
1. add a "file" to ConfigTree
2. create the file and deposit the timeout there, and put a custom Configurer in
3. build a custom Configurer to read the timeout again from where we just put it
4. and set the properties on HttpClient, where they were just filtered out by HttpClientFactory
(see https://community.jboss.org/message/644120?tstart=0 )
or
1. add individual http-client-property name value pairs for timeouts
2. add individual http-client-property name value pair for Configurer
3. build a custom Configurer to read the timeout again from where we just put it
4. and set the properties on HttpClient, where they were just filtered out by HttpClientFactory
really, I think I'll just do...
static { DefaultHttpParams.getDefaultParams().setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, 30000); DefaultHttpParams.getDefaultParams().setIntParameter(HttpConnectionParams.SO_TIMEOUT, 30000); }
...which works :-)
Cheers, Tom.