2016-05-06 3 views
0

私たちのアプリケーションでは、異なるサードパーティのWebサービスと対話する必要があります。 1つのケースでは、要求ヘッダーと本文を操作するためにインターセプターを追加する必要がありました。主な技術はSpringとCXFで、構成はXML(春の文脈で)を使用しています。SOAP outインターセプタCXF

特定のWebサービスに対して要求が行われた場合にのみ、インターセプタの呼び出しを制限する方法はありますか。

public abstract class TransformSOAPMessageInterceptor extends AbstractPhaseInterceptor<Message> { 

} 

おかげで、よろしく、 サン

答えて

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) { 
      ........... 
     } 
関連する問題