有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java SOAP输出拦截器CXF

在我们的应用程序中,我们需要与不同的第三方web服务交互。在其中一个例子中,我们必须添加一个out拦截器来操作请求头和请求体。我们使用的主要技术是Spring和CXF,配置使用XML(在Spring上下文中)

是否有办法仅在向特定web服务发出请求时限制拦截器调用

public abstract class TransformSOAPMessageInterceptor extends AbstractPhaseInterceptor<Message> {

}

谢谢和问候, 桑


共 (1) 个答案

  1. # 1 楼答案

    您可以检查消息中的SOAPAction头(下面显示的大多数示例取自http://cxf.apache.org/docs/interceptors.html):

    if (message.getVersion() instanceof Soap11) {
                Map<String, List<String>> headers = CastUtils.cast((Map)message.get(Message.PROTOCOL_HEADERS));
                if (headers != null) {
                    List<String> sa = headers.get("SOAPAction");
                    if (sa != null && sa.size() > 0) {
                        String action = sa.get(0);
                        if (action.startsWith("\"")) {
                            action = action.substring(1, action.length() - 1);
                        }
                        if (StringUtils.equals(action, "YOUR_SPECIAL_ACTION" ) {
                            doYourSpecialProcessint(message, action);
                        }
                    }
                }
            } else if (message.getVersion() instanceof Soap12) {
              ...........
            }