cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Neal Hu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-7057) CXF JAXRSClientFactoryBean proxy async support
Date Tue, 27 Sep 2016 16:11:21 GMT

    [ https://issues.apache.org/jira/browse/CXF-7057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15526599#comment-15526599
] 

Neal Hu commented on CXF-7057:
------------------------------

Hi Sergey,
I tried to register the callback in client side code, unfortunately the WebClient throws invalid
client exception. The reason is the proxy is not an instance of Client. The proxy was wrapped
as thirdparty invocation by java assist or jdk method invoke proxy. 

{code:java}
    public static ClientConfiguration getConfig(Object client) {
        if (client instanceof WebTargetImpl) {
            client = ((WebTargetImpl)client).getWebClient();
        } else if (client instanceof InvocationBuilderImpl) {
            client = ((InvocationBuilderImpl)client).getWebClient();
        } 
        
        if (client instanceof Client) {
            if (client instanceof WebClient) { 
                return ((AbstractClient)client).getConfiguration();
            } else if (client instanceof InvocationHandlerAware) {
                Object handler = ((InvocationHandlerAware)client).getInvocationHandler();
                return ((AbstractClient)handler).getConfiguration();
            }
        }
        throw new IllegalArgumentException("Not a valid Client");
    }
{code}

> CXF JAXRSClientFactoryBean proxy async support
> ----------------------------------------------
>
>                 Key: CXF-7057
>                 URL: https://issues.apache.org/jira/browse/CXF-7057
>             Project: CXF
>          Issue Type: Wish
>          Components: JAX-RS
>    Affects Versions: 3.1.6
>         Environment: Linux Mac
>            Reporter: Neal Hu
>             Fix For: 3.1.8
>
>
> Say we have resource interface org.apache.cxf.Resource, and its impl org.apache.cxf.ResourceImpl,
we can create client proxy via JAXRSClientFactoryBean as below;
> {code:java}
> Class<T> type = org.apache.cxf.Resource.class;
> JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
>         bean.setAddress(baseAddress);
>         bean.setServiceClass(type);
>         bean.setProviders(providers);
>         bean.setFeatures(features);
>         bean.setThreadSafe(true);
>         T proxy = bean.create(type);
> {code}
> Then invoke the method via proxy.method1.
> As we know the spec client api can invoke via async mode, my question is if the dynamic
proxy mode support async mode.
> We are developing micro service framework which based on CXF RS,  and the  comsumer's
invoker is dynamicly generated by the clientfactory.create. Thanks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message