[
https://issues.apache.org/jira/browse/CXF-7767?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Willem Salembier updated CXF-7767:
----------------------------------
Description:
One of our clients always sends 'Expect: 100-continue' headers and expects the
server to respond with status code 100 Continue before sending the payload of
the request. With transport untertow, this is currently not supported (we see
an additional delay of 2s per request)
The issue can be resolved by wiring in the
io.undertow.server.handlers.HttpContinueReadHandler.
For example modifying these lines works:
https://github.com/apache/cxf/blob/master/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/UndertowHTTPServerEngine.java#L211-L221
{code}
if (url.getPath().length() == 0) {
result = result.setHandler(Handlers.trace(new
HttpContinueReadHandler(undertowHTTPHandler)));
} else {
if (undertowHTTPHandler.isContextMatchExact()) {
this.path.addExactPath(url.getPath(), new
HttpContinueReadHandler(undertowHTTPHandler));
} else {
this.path.addPrefixPath(url.getPath(), new
HttpContinueReadHandler(undertowHTTPHandler));
}
{code}
Alternative impl to integrate this handler in UndertowHTTPHandler.
Also the config should really be set via cxf.xml.
Test case:
* Deploy a simple SOAP service using javax.xml.ws.Endpoint.publish
* Configure SoapUI in preferences > HTTP Settings (Expect-Continue: true)
* Call a SOAP operation
result = result.setHandler(this.wrapHandler(this.path));
}
{code}
100-Continue is well supported in the jetty transport, but with netty we see a
similar issue. With netty the server hangs and doesn't respond
was:
One of our clients always sends 'Expect: 100-continue' headers and expects the
server to respond with status code 100 Continue before sending the payload of
the request. With transport untertow, this is currently not supported (we see
an additional delay of 2s per request)
The issue can be resolved by wiring in the
io.undertow.server.handlers.HttpContinueReadHandler.
For example modifying these lines works:
https://github.com/apache/cxf/blob/master/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/UndertowHTTPServerEngine.java#L211-L221
{code}
if (url.getPath().length() == 0) {
result = result.setHandler(Handlers.trace(new
HttpContinueReadHandler(undertowHTTPHandler)));
} else {
if (undertowHTTPHandler.isContextMatchExact()) {
this.path.addExactPath(url.getPath(), new
HttpContinueReadHandler(undertowHTTPHandler));
} else {
this.path.addPrefixPath(url.getPath(), new
HttpContinueReadHandler(undertowHTTPHandler));
}
Alternative impl to integrate this handler in UndertowHTTPHandler.
Also the config should really be set via cxf.xml.
Test case:
* Deploy a simple SOAP service using javax.xml.ws.Endpoint.publish
* Configure SoapUI in preferences > HTTP Settings (Expect-Continue: true)
* Call a SOAP operation
result = result.setHandler(this.wrapHandler(this.path));
}
{code}
100-Continue is well supported in the jetty transport, but with netty we see a
similar issue. With netty the server hangs and doesn't respond
> Support 100-Continue in Undertow transport
> ------------------------------------------
>
> Key: CXF-7767
> URL: https://issues.apache.org/jira/browse/CXF-7767
> Project: CXF
> Issue Type: Improvement
> Components: Transports
> Affects Versions: 3.2.4
> Reporter: Willem Salembier
> Priority: Major
>
> One of our clients always sends 'Expect: 100-continue' headers and expects
> the server to respond with status code 100 Continue before sending the
> payload of the request. With transport untertow, this is currently not
> supported (we see an additional delay of 2s per request)
> The issue can be resolved by wiring in the
> io.undertow.server.handlers.HttpContinueReadHandler.
> For example modifying these lines works:
> https://github.com/apache/cxf/blob/master/rt/transports/http-undertow/src/main/java/org/apache/cxf/transport/http_undertow/UndertowHTTPServerEngine.java#L211-L221
> {code}
> if (url.getPath().length() == 0) {
> result = result.setHandler(Handlers.trace(new
> HttpContinueReadHandler(undertowHTTPHandler)));
> } else {
> if (undertowHTTPHandler.isContextMatchExact()) {
> this.path.addExactPath(url.getPath(), new
> HttpContinueReadHandler(undertowHTTPHandler));
> } else {
> this.path.addPrefixPath(url.getPath(), new
> HttpContinueReadHandler(undertowHTTPHandler));
> }
> {code}
> Alternative impl to integrate this handler in UndertowHTTPHandler.
> Also the config should really be set via cxf.xml.
> Test case:
> * Deploy a simple SOAP service using javax.xml.ws.Endpoint.publish
> * Configure SoapUI in preferences > HTTP Settings (Expect-Continue: true)
> * Call a SOAP operation
> result = result.setHandler(this.wrapHandler(this.path));
> }
> {code}
> 100-Continue is well supported in the jetty transport, but with netty we see
> a similar issue. With netty the server hangs and doesn't respond
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)