我很惊讶在谷歌上没有得到任何关于"org.apache.cxf.resource.method"
. 虽然,有很多拦截器使用它(在我给出的代码中)。
例如这个(在自定义中FaultOutInterceptor
):
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
'它?
编辑: 作为实现期望的黑客,这就是我所做的:
我写了一个inInterceptor
for Phase.PRE_STREAM
,配置在jaxrs:inInterceptors
和
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);
}
虽然,它给了我想要的结果,但它完全是一个 hack,看起来并不正确。任何意见?