Sorry, just checked the code.
So, if one does add an async transport dependency then this property will not have to be set explicitly. If you use Java HTTP transport: it has never been improved to support extension verbs so Dan had to do some reflective hacks around HTTP url connection which would be a bit expensive for usual POST, etc, calls. So to support PATCH or any other custom verb with HTTPUrlConnection one has to set a different property, "use.httpurlconnection.method.reflection"

https://github.com/apache/cxf/blob/master/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java#L110

either the way it is shown in the test, or as suggested below using the interceptor

Sergey


On 05/10/16 12:16, Vjacheslav V. Borisov wrote:
Checked in 3.1.8-SNAPSHOT, getting Caused by: java.net.ProtocolException:
Invalid HTTP method: PATCH

 WARN  o.a.cxf.phase.PhaseInterceptorChain - Interceptor for {
http://api.geoservices.ilb.ru/}FeaturesResource has thrown exception,
unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
    at
org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:48)
~[cxf-core-3.1.8-20160929.065015-38.jar:3.1.8.SNAPSHOT]
    at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
[cxf-core-3.1.8-20160929.065015-38.jar:3.1.8.SNAPSHOT]
    at
org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:666)
[cxf-rt-rs-client-3.1.8-20160929.070108-32.jar:3.1.8.SNAPSHOT]
    at
org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:744)
[cxf-rt-rs-client-3.1.8-20160929.070108-32.jar:3.1.8.SNAPSHOT]
    at
org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:231)
[cxf-rt-rs-client-3.1.8-20160929.070108-32.jar:3.1.8.SNAPSHOT]
    at com.sun.proxy.$Proxy236.createBatch(Unknown Source) [na:na]

2016-10-05 13:23 GMT+04:00 Sergey Beryozkin <[email protected]>:

Hi

No, setting this property is not really needed any longer.
With the latest CXFs it should just work with or without the async conduit
being loaded, Dan did some HTTPURLConnection reflective work.

Cheers, Sergey


On 05/10/16 10:02, Vjacheslav V. Borisov wrote:

Hi!

There is "How to use PATCH method in CXF" thread
http://stackoverflow.com/questions/32067687/how-to-use-patch
-method-in-cxf

Where author is using

use.async.http.conduit to allow proxy client generated to work.

To do this he recommends to write interceptor:


if ( message.get(Message.HTTP_REQUEST_METHOD).equals("PATCH") {
  message.put("use.async.http.conduit", true);}


Does this is preferred workaround to make PATCH method work in client?






--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Reply via email to