cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Julio Carlos Barrera Juez <juliocarlos.barr...@i2cat.net>
Subject Re: Sending body in DELETE HTTP Requests with JAXRSClientFactoryBean
Date Wed, 16 Oct 2013 14:11:30 GMT
Looking for logs, I've realized that the property is producing changes. I
mean the Async HTTP client is being used. However my DELETE request has no
body. My client interface is JAX-RS annotated, my Resource class is JaxB
annotated:

@Path("/server/path")
@DELETE
@Consumes(MediaType.APPLICATION_JSON)
 public void deleteResource(Resource resource);

I have a create method working with de same configuration and it works:

 @Path("/server/path")
@POST
@Consumes(MediaType.APPLICATION_JSON)
 public void createResource(Resource resource);

I'm using Jackson as JSON serializer, but I guess it has no relation with
this problem.

These log lines show that the DELETE request has content-lenght 0 and
the  Async HTTP client is being used

[I/O dispatcher 2] DEBUG
org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduitFactory$2 -
Connection leased: [id: 2][route: {}->http://my_server][total kept alive:
0; route allocated: 1 of 1000; total allocated: 0 of 5000]
[I/O dispatcher 2] DEBUG
org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduitFactory$3 -
[exchange: 3] Connection allocated:
[id:2][route:{}->http:/my_server][state:null]
[I/O dispatcher 2] DEBUG org.apache.http.impl.nio.reactor.IOSessionImpl -
http-outgoing-2 192.168.254.86:35152<->server_ip[ACTIVE][r:]: Set attribute
http.nio.exchange-handler
[I/O dispatcher 2] DEBUG org.apache.http.impl.nio.reactor.IOSessionImpl -
http-outgoing-2 192.168.254.86:35152<->server_ip[ACTIVE][rw:]: Event set [w]
[I/O dispatcher 2] DEBUG org.apache.http.impl.nio.reactor.IOSessionImpl -
http-outgoing-2 192.168.254.86:35152<->server_ip[ACTIVE][rw:]: Set
attribute http.nio.http-exchange-state
[I/O dispatcher 2] DEBUG
org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduitFactory$3 -
[exchange: 3] Attempt 1 to execute request
[I/O dispatcher 2] DEBUG org.apache.http.impl.nio.reactor.IOSessionImpl -
http-outgoing-2 192.168.254.86:35152<->server_ip[ACTIVE][rw:]: Set timeout
60000
[I/O dispatcher 2] DEBUG org.apache.http.client.protocol.RequestAuthCache -
Auth cache not set in the context
[I/O dispatcher 2] DEBUG
org.apache.http.client.protocol.RequestTargetAuthentication - Target auth
state: UNCHALLENGED
[I/O dispatcher 2] DEBUG
org.apache.http.client.protocol.RequestProxyAuthentication - Proxy auth
state: UNCHALLENGED
[I/O dispatcher 2] DEBUG org.apache.http.headers - http-outgoing-2 >> *
DELETE* /server/path HTTP/1.1
[I/O dispatcher 2] DEBUG org.apache.http.headers - http-outgoing-2 >>
Accept: text/plain
[I/O dispatcher 2] DEBUG org.apache.http.headers - http-outgoing-2 >>
User-Agent: Apache CXF 2.7.4
[I/O dispatcher 2] DEBUG org.apache.http.headers - http-outgoing-2 >>
*Content-Length:
0*
[I/O dispatcher 2] DEBUG org.apache.http.headers - http-outgoing-2 >> Host:
my_server
[I/O dispatcher 2] DEBUG org.apache.http.headers - http-outgoing-2 >>
Connection: Keep-Alive

[image: i2cat]
Julio C. Barrera Juez
Office phone: +34 93 357 99 27
Distributed Applications and Networks Area (DANA)
i2CAT Foundation, Barcelona, Spain
http://dana.i2cat.net


On 16 October 2013 15:17, Julio Carlos Barrera Juez <
juliocarlos.barrera@i2cat.net> wrote:

> I don't know how to install CXF Async HTTP transport. I have the maven
> artifact in my project dependencies, but nothing else.
>
> [image: i2cat]
> Julio C. Barrera Juez
> Office phone: +34 93 357 99 27
> Distributed Applications and Networks Area (DANA)
> i2CAT Foundation, Barcelona, Spain
> http://dana.i2cat.net
>
>
> On 16 October 2013 13:14, Sergey Beryozkin <sberyozkin@gmail.com> wrote:
>
>> I guess you don't have CXF Async HTTP transport installed ?
>> Other than that I've no idea, if it won;t work with the Async module then
>> I guess it is possible to do
>> Sergey
>>
>> On 16/10/13 11:49, Julio Carlos Barrera Juez wrote:
>>
>>> I tried to use this information before, but I don't know how to solve my
>>> problem.
>>>
>>> I have something like this:
>>>
>>> ProxyClassLoader classLoader = new ProxyClassLoader();
>>>   classLoader.addLoader(**IServiceInterface.class.**getClassLoader());
>>> classLoader.addLoader(**JAXRSClientFactoryBean.class.**
>>> getClassLoader());
>>>
>>> JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
>>> bean.setAddress(uri);
>>> bean.setResourceClass(**IServiceInterface.class);
>>>   bean.setClassLoader(**classLoader);
>>>
>>> client (IServiceInterface) bean.create();
>>>
>>> Then I can use the client object as usual. But if fails sending DELETE
>>> requests with body.
>>>
>>> I tried doing this:
>>>
>>> ProxyClassLoader classLoader = new ProxyClassLoader();
>>>   classLoader.addLoader(**IServiceInterface.class.**getClassLoader());
>>> classLoader.addLoader(**JAXRSClientFactoryBean.class.**
>>> getClassLoader());
>>>
>>> JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
>>> bean.setAddress(uri);
>>> bean.setResourceClass(**IServiceInterface.class);
>>>   bean.setClassLoader(**classLoader);
>>>
>>> // allow body in DELETE requests
>>> Client client = bean.create();
>>>   WebClient.getConfig(client).**getRequestContext().put("use.**
>>> async.http.conduit",
>>> true);
>>>
>>> (IServiceInterface) client.**whateverMethodThatSendsDelete(**);
>>>
>>> But it didn't work.
>>>
>>> What am I missing?
>>>
>>> [image: i2cat]
>>> Julio C. Barrera Juez
>>> Office phone: +34 93 357 99 27
>>> Distributed Applications and Networks Area (DANA)
>>> i2CAT Foundation, Barcelona, Spain
>>> http://dana.i2cat.net
>>>
>>>
>>> On 16 October 2013 12:00, Sergey Beryozkin <sberyozkin@gmail.com> wrote:
>>>
>>>  Hi
>>>>
>>>> On 16/10/13 09:18, Julio Carlos Barrera Juez wrote:
>>>>
>>>>  Hi.
>>>>>
>>>>> I'm creating a REST client using JAXRSClientFactoryBean and
>>>>> ProxyClassLoader based on a JAXRS annotated Java interface.
>>>>>
>>>>> I want to send a DELETE with body, which is not recommended by RESTful
>>>>> philosophy, but it is allowed by HTTP 1.1 RFC.
>>>>>
>>>>> The body is not sent by the client and I have read a lot of problems
to
>>>>> allow it.
>>>>>
>>>>> Is it possible send a body in my DELETE requests with this
>>>>> configuration?
>>>>>
>>>>>   Please check this thread
>>>>>
>>>>
>>>> http://cxf.547215.n5.nabble.****com/JaxRS-Client-with-Deletes-****
>>>> td5731444.html<http://cxf.**547215.n5.nabble.com/JaxRS-**
>>>> Client-with-Deletes-td5731444.**html<http://cxf.547215.n5.nabble.com/JaxRS-Client-with-Deletes-td5731444.html>
>>>> >
>>>>
>>>>
>>>> Cheers, Sergey
>>>>
>>>>
>>>>
>>>>
>>>>   Thank you!
>>>>
>>>>>
>>>>> Regards, Julio
>>>>>
>>>>> [image: i2cat]
>>>>> Julio C. Barrera Juez
>>>>> Office phone: +34 93 357 99 27
>>>>> Distributed Applications and Networks Area (DANA)
>>>>> i2CAT Foundation, Barcelona, Spain
>>>>> http://dana.i2cat.net
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>> --
>> Sergey Beryozkin
>>
>> Talend Community Coders
>> http://coders.talend.com/
>>
>> Blog: http://sberyozkin.blogspot.com
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message