]
Larry O'Leary updated TEIID-881:
--------------------------------
Attachment: transfer-encoding-test.tar.gz
Linux script that uses curl to demonstrate the problem and solution as a test case.
SOAP Connector should expose property to control HTTP Header
Transfer-Encoding: chunked
---------------------------------------------------------------------------------------
Key: TEIID-881
URL:
https://jira.jboss.org/jira/browse/TEIID-881
Project: Teiid
Issue Type: Feature Request
Components: XML Connector
Affects Versions: 6.0.0, 6.1.0, 6.2.0
Reporter: Larry O'Leary
Assignee: Steven Hawkins
Attachments: mmx-models.zip, transfer-encoding-test.tar.gz
A user has reported that results from a SOAP service using the SOAP-Relational connector
are sometimes invalid. This is due to the results from an earlier invocation being
returned. After further investigation this turned out to be a bug with the web server
that was hosting the web service and its inability to properly handle chunked requests.
By default, Axis 1.3/2 (not sure what we are using lately) uses chunked
Transfer-Encoding. By disabling chunked transfer encoding it allows the faulty web server
to properly serve the request and return the expected results.
Ideally, chunked requests should be used as per the default Axis configuration but we
should expose a means of overriding this behaviour in the event a user runs across a buggy
web server.
For example, in SOAPExecutor chunked requests can be enabled/disabled via a setting in
the Call properties.
Boolean isChunked = ((HTTPConnectorState)
this.getState()).isHttpHeaderTransferEncodingChunked();
if (isChunked != null) {
Hashtable httpProps = (Hashtable)
call.getProperty(HTTPConstants.REQUEST_HEADERS);
if (httpProps == null) {
httpProps = new Hashtable();
}
httpProps.put(HTTPConstants.HEADER_TRANSFER_ENCODING_CHUNKED, isChunked);
call.setProperty(HTTPConstants.REQUEST_HEADERS, httpProps);
}
Please note, this code was written against Axis 1.3 which is used in XML-Relational SOAP
Connector for MMx 5.5.3.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: