首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Org.apache.cxf.resource.method在CXF中的意义是什么?

Org.apache.cxf.resource.method在CXF中的意义是什么?
EN

Stack Overflow用户
提问于 2013-02-05 16:54:10
回答 1查看 741关注 0票数 1

我很惊讶没有在谷歌上得到任何关于"org.apache.cxf.resource.method"的信息。尽管如此,有很多拦截器使用它(在我得到的代码中)。

例如,(在自定义FaultOutInterceptor中):

代码语言:javascript
复制
private boolean isServiceResponseRequested(Message message) {
    Method method = (Method) message.getExchange().getInMessage()
            .get("org.apache.cxf.resource.method");
    if (method != null) {
        Class c = method.getReturnType();
        if (c != null) {
            if (c.getSimpleName().equals(
                    ServiceResponse.class.getSimpleName())) {
                return true;
            }
        }
    }
    return false;
}

AbstractAuthorizingInInterceptor也有对它的引用。

有谁介意解释一下"org.apache.cxf.resource.method“的意义,以及如何在哪里'set‘它?

编辑:作为一个黑客来实现所需的目标,这就是我所做的:

我为Phase.PRE_STREAM编写了一个Phase.PRE_STREAM,在jaxrs:inInterceptors

代码语言:javascript
复制
handleMessage(Message message) 
{
   Message inMessage = message.getExchange().getInMessage();
   Method appMethod = //Logic to determine the method based on the request Url
   inMessage.put("org.apache.cxf.resource.method", appMethod);
}

虽然,它给了我想要的结果,它完全是一个黑客,看起来并不是真的正确。有什么评论吗?

EN

回答 1

Stack Overflow用户

发布于 2013-06-15 00:49:20

CXF选择的org.apache.cxf.resource.method Java方法来处理传入的请求。这是由CXF在流前阶段自动完成的,通常通过检查jaxrs的类和方法上的注释来完成:serviceBeans,特别是@Path、@HTTPMethod、@Produces、@消耗品等等。

如果您需要对CXF选择哪种方法进行更精确的优化控制,则可能更适合实现ResourceComparitor,而不是实现拦截器来尝试将这些数据解析出消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14712705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档