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 Thu, 17 Oct 2013 14:45:51 GMT
I tried the same without changing the URI, only changing the method and it
didn't work neither. I changed the original method to HEAD (changing the
JAX-RS annotated interface), changing it to DELETE in the filter. The
client sends HEAD requests anyway. Why is not my filter changing the
request method?

[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 17 October 2013 16:37, Sergey Beryozkin <sberyozkin@gmail.com> wrote:

> On 17/10/13 14:49, Julio Carlos Barrera Juez wrote:
>
>> Bad news then.
>>
>
> I'm not sure why did you expect DELETE with body to work, we discussed it
> yesterday and confirmed it was not yet possible, please make sure you watch
> that JIRA I linked to to try it once it gets fixed (though I don't know yet
> how feasible it is)
>
>
>  Anyway the filter does not work, because the
>> calls requestContext.setUri(...) did not change the real URI used at the
>> end. But the method requestContext.setMEthod(...) worked...
>>
>>  Right, setUri does not work from client filters, thanks for catching it.
> I've been certain a test is there, but it is only pre-matching container
> request filters which are tested on setRequestUri, so it needs to be fixed
>
> Cheers, Sergey
>
>> 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 <http://dana.i2cat.net/>
>>
>>
>> On 17 October 2013 13:45, Sergey Beryozkin <sberyozkin@gmail.com
>> <mailto:sberyozkin@gmail.com>> wrote:
>>
>>     Hi
>>
>>     The method is definitely returned in CXF 2.7.7, I've just added a
>>     test confirming that. A lot of fixes went into the client-side 2.0
>>     code, some of it is still on the trunk only as they deal more with
>>     various very edgy TCK issues, I'm not sure yet if they should make
>>     to CXF 2.7.8 or not, but a method getter works in 2.7.7
>>
>>     Re the actual exception, I guess this is because we don't have
>>     DELETE with body supported yet
>>
>>     Sergey
>>
>>     On 17/10/13 11:51, Julio Carlos Barrera Juez wrote:
>>
>>         Hi Sergey.
>>
>>         First of all, excuse me by the duplicate message.
>>
>>         I have just written a Filter like this:
>>
>>         public class PostToDeleteWithBodyFilter implements
>>         ClientRequestFilter {
>>
>>         public final static StringEXTRA_PATH= "/mutatePOSTtoDELETE";
>>
>>
>>         @Override
>>         public void filter(ClientRequestContext requestContext) throws
>>         IOException {
>>         String method = requestContext.getMethod();
>>         String path = requestContext.getUri().__**getPath();
>>
>>
>>         if (path != null && path.endsWith(EXTRA_PATH)) {
>>         // remove EXTRA_PATH
>>         requestContext.setUri(URI.__**create(path.substring(0,
>> path.length() -
>>
>>         EXTRA_PATH.length())));
>>         // transform POST into DELETE
>>         requestContext.setMethod("__**DELETE");
>>
>>         }
>>         }
>>         }
>>
>>         I have some issues again. The method var is null. And the most
>>         important, an exception is thrown when I use this filter:
>>
>>         Caused by: java.io.IOException: IOException invoking
>>         http://<my_server>/real_path/_**_mutatePOSTtoDELETE: insufficient
>>         data written
>>         at
>>         sun.reflect.__**NativeConstructorAccessorImpl.**__newInstance0(Native
>> Method)
>>         at
>>         sun.reflect.__**NativeConstructorAccessorImpl.**__newInstance(__*
>> *NativeConstructorAccessorImpl.**__java:39)
>>         at
>>         sun.reflect.__**DelegatingConstructorAccessorI**
>> __mpl.newInstance(__**DelegatingConstructorAccessorI**__mpl.java:27)
>>         at
>>         java.lang.reflect.Constructor.**__newInstance(Constructor.**
>> java:__513)
>>         at
>>         org.apache.cxf.transport.http.**__HTTPConduit$__**
>> WrappedOutputStream.__**mapException(HTTPConduit.java:**__1338)
>>         at
>>         org.apache.cxf.transport.http.**__HTTPConduit$__**
>> WrappedOutputStream.close(__**HTTPConduit.java:1322)
>>         at
>>         org.apache.cxf.transport.__**AbstractConduit.close(__**
>> AbstractConduit.java:56)
>>         at
>>         org.apache.cxf.transport.http.**__HTTPConduit.close(**
>> HTTPConduit.__java:622)
>>         at
>>         org.apache.cxf.interceptor.__**MessageSenderInterceptor$__**
>> MessageSenderEndingInterceptor**__.handleMessage(__**
>> MessageSenderInterceptor.java:**__62)
>>
>>         ... 31 more
>>         Caused by: java.io.IOException: insufficient data written
>>         at
>>         sun.net.www.protocol.http.__**HttpURLConnection$__**
>> StreamingOutputStream.close(__**HttpURLConnection.java:2861)
>>         at
>>         sun.net.www.protocol.http.__**HttpURLConnection.__**
>> getInputStream(__**HttpURLConnection.java:1175)
>>         at
>>         java.net.HttpURLConnection.__**getResponseCode(__**
>> HttpURLConnection.java:379)
>>         at
>>         org.apache.cxf.transport.http.**__URLConnectionHTTPConduit$__**
>> URLConnectionWrappedOutputStre**__am.getResponseCode(__**
>> URLConnectionHTTPConduit.java:**__260)
>>         at
>>         org.apache.cxf.transport.http.**__HTTPConduit$__**
>> WrappedOutputStream.__**handleResponseInternal(__**HTTPConduit.java:1517)
>>         at
>>         org.apache.cxf.transport.http.**__HTTPConduit$__**
>> WrappedOutputStream.__**handleResponse(HTTPConduit.__**java:1490)
>>         at
>>         org.apache.cxf.transport.http.**__HTTPConduit$__**
>> WrappedOutputStream.close(__**HTTPConduit.java:1309)
>>
>>         ... 34 more
>>
>>         I tried to detect the special message to be mutated using an
>>         extra path
>>         string appended to the real path. It worked, it was detected, but
>>         something went wrong...
>>
>>         i2cat
>>         Julio C. Barrera Juez
>>         Office phone: +34 93 357 99 27 <tel:%2B34%2093%20357%2099%**2027>
>>         Distributed Applications and Networks Area (DANA)
>>         i2CAT Foundation, Barcelona, Spain
>>         http://dana.i2cat.net <http://dana.i2cat.net/>
>>
>>
>>
>>         On 17 October 2013 12:17, Sergey Beryozkin <sberyozkin@gmail.com
>>         <mailto:sberyozkin@gmail.com>
>>         <mailto:sberyozkin@gmail.com <mailto:sberyozkin@gmail.com>>**>
>> wrote:
>>
>>              Hi
>>
>>              Can you register an instance of JAX-RS 2.0
>>         ClientRequestFilter (as a
>>              provider) and set your method & request URI if needed there ?
>>              That should make it simpler for you.
>>
>>              Re using a custom CXF interceptor, it really should have the
>>              properties which you check already set on the message passed
>> to
>>              handleMessage(), that message is an out message, so you
>>         should have
>>              "message == message.getExchange().____**getOutMessage()"
>> hold
>>
>>         true.
>>
>>
>>              Cheers, Sergey
>>
>>
>>              On 17/10/13 08:11, Julio Carlos Barrera Juez wrote:
>>
>>                  I'm trying to workaround this problem with an output CXF
>>                  interceptor. I
>>                  have modified the DELETE request to be a POST request
>>         allowing a
>>                  body. I
>>                  want that my interceptor will detect the POST request
>>         and will
>>                  change it to
>>                  a DELETE. I'm having some problems to achieve it. How
>>         can the
>>                  interceptor
>>                  modify the message object to achieve my goal?
>>
>>                  I have written something like this:
>>
>>                  public class PostToDeleteWithBodyIntercepto**____r
>> extends
>>                  AbstractPhaseInterceptor<____**Message> {
>>
>>
>>
>>                     public final static String EXTRA_PATH =
>>         "/mutatePOSTtoDELETE";
>>
>>                  public PostToDeleteWithBodyIntercepto**____r() {
>>
>>
>>                  super(Phase.PRE_PROTOCOL);
>>                     }
>>
>>                  public void handleMessage(Message message) {
>>                     String path = (String)
>>
>>         message.getExchange().____**getOutMessage().get(Message.__**
>> __REQUEST_URI);
>>                  String method = (String)
>>
>>         message.getExchange().____**getOutMessage().get(Message.__**
>> __HTTP_REQUEST_METHOD);
>>
>>
>>                     if (method != null && method.equals("POST") &&
path
>>         != null &&
>>                  path.endsWith(EXTRA_PATH)) {
>>                  // TODO remove EXTRA_PATH
>>                     // TODO transform POST into DELETE
>>                  }
>>                     }
>>                  }
>>
>>                  I have a few doubts:
>>
>>                       - I don't know how to modify the path and the
>>         method of the
>>                  request. I
>>
>>                       have tried modifying the content of the
>>                       - I don't know what is the exact phase where apply
>> it.
>>                       - Why do I need to look for exchange, out message
>>         to see
>>                  current path
>>
>>                       and method? It should be in the message, but the
>>         values are
>>                  null.
>>
>>                  Thank you!
>>
>>                  [image: i2cat]
>>                  Julio C. Barrera Juez
>>                  Office phone: +34 93 357 99 27
>>         <tel:%2B34%2093%20357%2099%**2027> <tel:%2B34%2093%20357%2099%__*
>> *2027>
>>
>>
>>                  Distributed Applications and Networks Area (DANA)
>>                  i2CAT Foundation, Barcelona, Spain
>>         http://dana.i2cat.net
>>
>>
>>                  On 16 October 2013 16:54, Sergey Beryozkin
>>         <sberyozkin@gmail.com <mailto:sberyozkin@gmail.com>
>>                  <mailto:sberyozkin@gmail.com
>>
>>         <mailto:sberyozkin@gmail.com>>**> wrote:
>>
>>                      Hi,
>>
>>                      On 16/10/13 15:36, Julio Carlos Barrera Juez wrote:
>>
>>                          Yes, the server is not under my control. I want
>> to
>>                          develop a client
>>                          because
>>                          I like how CXF works and it is a dependency for
>>         other
>>                          issues in my
>>                          project.
>>                          Obviously I would never develop a service with
>>         body in
>>                          DELETE requests.
>>
>>                          The, taking into account that I'm using CXF
>>         2.7.x, is it
>>                          possible to
>>                          workaround my problem using CXF?
>>
>>                             Probably not at the moment,
>>
>>                      I've opened
>>         https://issues.apache.org/**__**__jira/browse/CXF-5337<https://issues.apache.org/**____jira/browse/CXF-5337>
>>         <https://issues.apache.org/**_**_jira/browse/CXF-5337<https://issues.apache.org/**__jira/browse/CXF-5337>
>> >
>>                      <https://issues.apache.org/**_**
>> _jira/browse/CXF-5337<https://issues.apache.org/**__jira/browse/CXF-5337>
>>         <https://issues.apache.org/****jira/browse/CXF-5337<https://issues.apache.org/**jira/browse/CXF-5337>
>> >><https:/**/____issues.apache.org/jira/__**browse/__CXF-5337<http://issues.apache.org/jira/__browse/__CXF-5337>
>>         <http://issues.apache.org/**jira/browse/__CXF-5337<http://issues.apache.org/jira/browse/__CXF-5337>
>> >
>>
>>                      <https://issues.apache.org/__**jira/browse/CXF-5337<https://issues.apache.org/__jira/browse/CXF-5337>
>>
>>         <https://issues.apache.org/**jira/browse/CXF-5337<https://issues.apache.org/jira/browse/CXF-5337>
>> >>>
>>
>>
>>                      Please watch it.
>>
>>                      In meantime, may be it is possible to 'tunnel' it,
>>         example,
>>                      use POST but
>>                      set some header with the real/intended HTTP verb
>>         such as
>>                      DELETE, the target
>>                      server would need to replace POST with DELETE, the
>>         easy way
>>                      is to say
>>                      create Servlet filter which will use
>> HTTPServletRequest
>>                      wrapper to return
>>                      DELETE, some work is needed there but no changes to
>> the
>>                      server code itself
>>                      will be required.
>>
>>                      Otherwise - try snapshots once CXF-5337 gets resolved
>>
>>                      Thanks, Sergey
>>
>>                          Thank you Sergey!
>>
>>                          [image: i2cat]
>>                          Julio C. Barrera Juez
>>                          Office phone: +34 93 357 99 27
>>         <tel:%2B34%2093%20357%2099%**2027>
>>                          <tel:%2B34%2093%20357%2099%__**2027>
>>
>>
>>                          Distributed Applications and Networks Area (DANA)
>>                          i2CAT Foundation, Barcelona, Spain
>>         http://dana.i2cat.net
>>
>>
>>                          On 16 October 2013 16:23, Sergey Beryozkin
>>                          <sberyozkin@gmail.com
>>         <mailto:sberyozkin@gmail.com> <mailto:sberyozkin@gmail.com
>>
>>         <mailto:sberyozkin@gmail.com>>**> wrote:
>>
>>                             Right, looks like the following has to be
>>         done with
>>                          HTTPClient:
>>
>>
>>         https://code.google.com/p/******____rest-client/source/browse/**
>> ** <https://code.google.com/p/****____rest-client/source/browse/**>
>>         <https://code.google.com/p/******__rest-client/source/browse/****<https://code.google.com/p/****__rest-client/source/browse/**>
>> >
>>
>>         <https://code.google.com/p/*****__*rest-client/source/browse/****<https://code.google.com/p/***__*rest-client/source/browse/**>
>>         <https://code.google.com/p/******rest-client/source/browse/**<https://code.google.com/p/****rest-client/source/browse/**>
>> >**>__<h__ttps://code.google.com/**p/*__*__rest-client/source/**
>> browse/*__*<http://code.google.com/p/*__*__rest-client/source/browse/*__*>
>>         <http://code.google.com/p/**__**rest-client/source/browse/**<http://code.google.com/p/**__rest-client/source/browse/**>
>> >
>>
>>         <https://code.google.com/p/**_**_rest-client/source/browse/**<https://code.google.com/p/**__rest-client/source/browse/**>
>>         <https://code.google.com/p/****rest-client/source/browse/**<https://code.google.com/p/**rest-client/source/browse/**>
>> >>**>
>>
>>         restclient-lib/src/main/java/***____***org/wiztools/**
>> restclient/____http/****
>>
>>         EntityEnclosingDelete.java<___**_htt**ps://code.google.com/p/_**
>> ___rest-** <http://code.google.com/p/____rest-**>
>>         <http://code.google.com/p/__**rest-**<http://code.google.com/p/__rest-**>
>> >
>>                              <http://code.google.com/p/__**rest-**<http://code.google.com/p/__rest-**>
>>         <http://code.google.com/p/**rest-**<http://code.google.com/p/rest-**>
>> >>
>>
>>         client/source/browse/**____**restclient-lib/src/main/java/***
>> ____*
>>
>>         org/wiztools/restclient/http/***____*EntityEnclosingDelete.**
>> java<__ht__tps://code.google.**com/p/__rest-__client/source/**
>> browse/____restclient-lib/src/**main/java/____org/wiztools/**
>> restclient/http/____**EntityEnclosingDelete.java<http://code.google.com/p/__rest-__client/source/browse/____restclient-lib/src/main/java/____org/wiztools/restclient/http/____EntityEnclosingDelete.java>
>>         <http://code.google.com/p/**rest-__client/source/browse/__**
>> restclient-lib/src/main/java/_**_org/wiztools/restclient/http/**
>> __EntityEnclosingDelete.java<http://code.google.com/p/rest-__client/source/browse/__restclient-lib/src/main/java/__org/wiztools/restclient/http/__EntityEnclosingDelete.java>
>> >
>>
>>
>>         <https://code.google.com/p/__**rest-client/source/browse/__**
>> restclient-lib/src/main/java/_**_org/wiztools/restclient/http/**
>> __EntityEnclosingDelete.java<https://code.google.com/p/__rest-client/source/browse/__restclient-lib/src/main/java/__org/wiztools/restclient/http/__EntityEnclosingDelete.java>
>>
>>         <https://code.google.com/p/**rest-client/source/browse/**
>> restclient-lib/src/main/java/**org/wiztools/restclient/http/**
>> EntityEnclosingDelete.java<https://code.google.com/p/rest-client/source/browse/restclient-lib/src/main/java/org/wiztools/restclient/http/EntityEnclosingDelete.java>
>> >>>
>>
>>
>>
>>
>>                              This is the code based on the advice from
>>         HttpClient
>>                              forums.
>>
>>                              I guess we should check if CXF Async
>>         Conduit can be
>>                              updated respectively
>>
>>                              By the way, I'm assuming you have to do
>>         DELETE with
>>                              a body because you
>>                              have some existing/legacy service expecting
>>         it this
>>                              way ? Now and then
>>                              users ask about it, and I don't mind to get
>> the
>>                              Async HTTP conduit
>>                              updated
>>                              a bit anyway, but if you have say a CXF
>> server
>>                              listening, then I'm sure
>>                              there could be an easier way :-)
>>
>>                              Cheers, Sergey
>>
>>
>>                              On 16/10/13 15:11, Julio Carlos Barrera
>>         Juez wrote:
>>
>>                                 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
>>         <http://192.168.254.86:35152>
>>
>>         <http://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
>>         <http://192.168.254.86:35152>
>>
>>         <http://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
>>         <http://192.168.254.86:35152>
>>
>>         <http://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
>>         <http://192.168.254.86:35152>
>>
>>         <http://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
>>         <tel:%2B34%2093%20357%2099%**2027>
>>                                  <tel:%2B34%2093%20357%2099%__**2027>
>>
>>
>>                                  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 <mailto:juliocarlos.barrera@**
>> i2cat.net <juliocarlos.barrera@i2cat.net>>
>>                                   <mailto:juliocarlos.barrera@__**
>> i2cat.net <http://i2cat.net>
>>
>>         <mailto:juliocarlos.barrera@**i2cat.net<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
>>         <tel:%2B34%2093%20357%2099%**2027>
>>                                      <tel:%2B34%2093%20357%2099%__**2027>
>>
>>
>>                                      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
>>         <mailto:sberyozkin@gmail.com>
>>                                      <mailto:sberyozkin@gmail.com
>>
>>         <mailto: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 <tel:%2B34%2093%20357%2099%**2027>
>>
>>         <tel:%2B34%2093%20357%2099%__**2027>
>>
>>
>>                                              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 <mailto:sberyozkin@gmail.com>
>>
>>         <mailto:sberyozkin@gmail.com <mailto: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.******____54**7215.n5.nabble.com/__**
>> JaxRS-*__*** <http://7215.n5.nabble.com/__JaxRS-*__***>
>>         <http://7215.n5.nabble.com/**JaxRS-*__***<http://7215.n5.nabble.com/JaxRS-*__***>
>> >
>>
>>         <http://7215.n5.nabble.com/__**JaxRS-****<http://7215.n5.nabble.com/__JaxRS-****>
>>         <http://7215.n5.nabble.com/**JaxRS-****<http://7215.n5.nabble.com/JaxRS-****>
>> >><http://7215.n5.__**nabble.com/__JaxRS-**<http://nabble.com/__JaxRS-**>
>>         <http://7215.n5.nabble.com/__**JaxRS-**<http://7215.n5.nabble.com/__JaxRS-**>
>> >
>>
>>         <http://7215.n5.nabble.com/__**JaxRS-**<http://7215.n5.nabble.com/__JaxRS-**>
>>         <http://7215.n5.nabble.com/**JaxRS-**<http://7215.n5.nabble.com/JaxRS-**>
>> >>>
>>
>>         <http://547215.n5.nabble.com/***____*JaxRS-**<http://547215.n5.nabble.com/*____*JaxRS-**>
>>         <http://547215.n5.nabble.com/***__*JaxRS-**<http://547215.n5.nabble.com/*__*JaxRS-**>
>> >
>>
>>         <http://547215.n5.nabble.com/***__*JaxRS-**<http://547215.n5.nabble.com/*__*JaxRS-**>
>>         <http://547215.n5.nabble.com/****JaxRS-**<http://547215.n5.nabble.com/**JaxRS-**>
>> >><http://547215.n5._**___nabble.com/JaxRS-**
>>         <http://nabble.com/JaxRS-**>
>>
>>         <http://547215.n5.nabble.com/_**_JaxRS-**<http://547215.n5.nabble.com/__JaxRS-**>
>>         <http://547215.n5.nabble.com/**JaxRS-**<http://547215.n5.nabble.com/JaxRS-**>
>> >>>
>>
>>
>>
>>         Client-with-Deletes-td5731444.**____******html<http://cxf.__**547215.
>> <http://cxf.547215.>__n5.
>>                                                  <http://cxf.547215.n5
>> .>****
>>         nabble.com/JaxRS-Client-with-***____***Deletes-td5731444.html<http://nabble.com/JaxRS-Client-with-*____***Deletes-td5731444.html>
>>         <http://nabble.com/JaxRS-**Client-with-*__***Deletes-**
>> td5731444.html<http://nabble.com/JaxRS-Client-with-*__***Deletes-td5731444.html>
>> >
>>
>>         <http://nabble.com/JaxRS-__**Client-with-****Deletes-__**
>> td5731444.html<http://nabble.com/JaxRS-__Client-with-****Deletes-__td5731444.html>
>>         <http://nabble.com/JaxRS-**Client-with-****Deletes-**
>> td5731444.html<http://nabble.com/JaxRS-Client-with-****Deletes-td5731444.html>
>> >><http__://nabb**l__e.com/JaxRS-Client-__with-***
>> *__Deletes-td5731444.html<http://nabbl__e.com/JaxRS-Client-__with-**__Deletes-td5731444.html>
>>         <http://nabble.com/JaxRS-**Client-__with-**Deletes-**
>> td5731444.html<http://nabble.com/JaxRS-Client-__with-**Deletes-td5731444.html>
>> >
>>
>>         <http://nabble.com/JaxRS-__**Client-with-**Deletes-__**
>> td5731444.html<http://nabble.com/JaxRS-__Client-with-**Deletes-__td5731444.html><
>> http://nabble.com/JaxRS-**Client-with-**Deletes-**td5731444.html<http://nabble.com/JaxRS-Client-with-**Deletes-td5731444.html>
>> >>>
>>
>>         <http:/**/cxf.547215.n5.__nabb**__le.com/**JaxRS-Client-__**
>> with-__Deletes-**<http://nabb__le.com/**JaxRS-Client-__with-__Deletes-**>
>>         <http://nabble.com/**JaxRS-**Client-__with-Deletes-**<http://nabble.com/**JaxRS-Client-__with-Deletes-**>
>> >
>>
>>         <http://cxf.547215.n5.nabble._**_com/**JaxRS-Client-with-__**
>> Deletes-**
>>         <http://cxf.547215.n5.nabble.**com/**JaxRS-Client-with-**
>> Deletes-**<http://cxf.547215.n5.nabble.com/**JaxRS-Client-with-Deletes-**>
>> >>
>>
>>
>>         td5731444.html<http://cxf.__54**__7215.n5.nabble.com/JaxRS-___**
>> _Client-with-Deletes-**td5731444.____html<http://54__7215.n5.nabble.com/JaxRS-____Client-with-Deletes-td5731444.____html>
>>         <http://547215.n5.nabble.com/**JaxRS-__Client-with-Deletes-**
>> td5731444.__html<http://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<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
>>
>>         <tel:%2B34%2093%20357%2099%__**2027>
>>
>>
>>                                                      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
>>
>>
>>
>>
>>
>>
>>                              --
>>                              Sergey Beryozkin
>>
>>                              Talend Community Coders
>>         http://coders.talend.com/
>>
>>                              Blog: http://sberyozkin.blogspot.com
>>
>>
>>
>>
>>                      --
>>                      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