0

我有一个像字符串一样的网络服务原始消息。我的目标是更改此消息内容,例如再见!改变再见!!。让我知道是否有任何 api/utils 方法可以完成这项工作。我正在使用带有 cxf 堆栈的 jboss 5,因此为此首选 cxf 实用程序。

原始 XML 字符串

再见!!

4

1 回答 1

0

您必须添加一个输出拦截器

例如 :

public class SoapActionOutInterceptor extends AbstractSoapInterceptor {

   public SoapActionOutInterceptor() {
         super(Phase.POST_LOGICAL);
   }

   public void handleMessage(SoapMessage message) throws Fault {
         if (message.getVersion() instanceof Soap11) {
                PocBean pb = null;
                MessageContentsList list = (MessageContentsList) message.getContent(List.class);
                for (Iterator itList = list.iterator(); itList.hasNext();) {
                       Object content = itList.next();
                       if (content instanceof PocBean) {
                              pb = (PocBean) content;
                              pb.setParam1("AlteredGoodbye!!");

                       }
                }
         }
   }
}

并像这样声明这个拦截器:

       <jaxws:endpoint id="pocWebService" implementor="#pocService"
         address="/pocService">

         <jaxws:properties>
                <entry key="schema-validation-enabled" value="true" />
         </jaxws:properties>
         <jaxws:outInterceptors>
                <bean class="fr.genybet.service.interceptor.SoapActionOutInterceptor" />
         </jaxws:outInterceptors>
   </jaxws:endpoint>
于 2013-02-15T13:07:54.240 回答