Hello
The first: wrap, please, your samples with [ CODE ] [ /CODE ] without whitespaces to make your posts more readable.
The second:
do you have any way of setting this property "checkConnectionForFault" in WebServiceTemplate class to fault from spring integration?
No, we don't. You're free to open a JIRA https://jira.springsource.org/browse/INT about your concern and we will think. And I see we don't support checkConnectionForError too.
The main problem is on the other side, where your external service returns you HTTP 200 OK on the Fault, but not 500 Internal Server Error...
However I agree with you: if WebServiceTemplate supports it we should in the Spring Integration delegate it in any case.
To solve your issue right now as workaround will be a bit hard:
1. You should implement some BeanPostProcessor or write some @PostConstruct method in the @Configuration class.
2. Add "id" attribute to your <ws:outbound-gateway/>, e.g. "wsOutboundGateway"
3. Get a Bean from Context by name: "wsOutboundGateway.handler". It will be the object of AbstractWebServiceOutboundGateway
4. Now you should use this one:
Code:
DirectFieldAccessor dfa = new DirectFieldAccessor(wsOutboundGateway);
WebServiceTemplate wst = (WebServiceTemplate) dfa.getPropertyValue("webServiceTemplate");
wst.setCheckConnectionForError(false);
wst.setCheckConnectionForFault(false);
5. That's all.
This "factitious" enrichement must be called on the application start-up.
Take care and thank you for feedbacks,
Artem