On 17/10/13 15:45, Julio Carlos Barrera Juez wrote:
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?

This is because the CXF interceptor which runs JAX-RS 2.0 client request filters used to run after CXF HTTPConduit has been already initialized, has just been fixed (CXF 2.7.8, trunk).

So for now, the custom CXF interceptors is the way to go,

check http://cxf.apache.org/docs/interceptors.html

use the stage before WRITE, says USER_LOGICAL

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 16:37, Sergey Beryozkin <[email protected]
<mailto:[email protected]>> 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 <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 13:45, Sergey Beryozkin <[email protected]
        <mailto:[email protected]>
        <mailto:[email protected] <mailto:[email protected]>>> 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> <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
        <[email protected] <mailto:[email protected]>
                 <mailto:[email protected] <mailto:[email protected]>>
                 <mailto:[email protected]
        <mailto:[email protected]> <mailto:[email protected]
        <mailto:[email protected]>>>__> 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>
        <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
                 <[email protected] <mailto:[email protected]>
        <mailto:[email protected] <mailto:[email protected]>>
                          <mailto:[email protected]
        <mailto:[email protected]>

                 <mailto:[email protected]
        <mailto:[email protected]>>>__> 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>
                                  <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
                                  <[email protected]
        <mailto:[email protected]>
                 <mailto:[email protected]
        <mailto:[email protected]>> <mailto:[email protected]
        <mailto:[email protected]>

                 <mailto:[email protected]
        <mailto:[email protected]>>>__> 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>


        <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>


        <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>


        <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>


        <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>

          <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 <
        [email protected]
        <mailto:[email protected]>
        <mailto:juliocarlos.barrera@__i2cat.net
        <mailto:[email protected]>>
                                          <mailto:juliocarlos.barrera@
        <mailto:juliocarlos.barrera@>____i2cat.net <http://i2cat.net>

                 <mailto:juliocarlos.barrera@__i2cat.net
        <mailto:[email protected]>>>> 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>

          <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
                                              <[email protected]
        <mailto:[email protected]>
                 <mailto:[email protected] <mailto:[email protected]>>

          <mailto:[email protected] <mailto:[email protected]>

                 <mailto:[email protected]
        <mailto:[email protected]>>>__>

                                              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
                 <[email protected] <mailto:[email protected]>
        <mailto:[email protected] <mailto:[email protected]>>

                 <mailto:[email protected]
        <mailto:[email protected]> <mailto:[email protected]
        <mailto:[email protected]>>>__>


                                                      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://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











--
Sergey Beryozkin

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

Blog: http://sberyozkin.blogspot.com

Reply via email to