SpringBoot 使用CXF 集成WebService 請求忽略命名空間

前景回顧

上一章咱們介紹瞭如何用springBoot 來搭建一個WebService服務《SpringBoot 使用CXF 集成WebService》,還不瞭解的同窗能夠去看下。git

在使用CXF搭建的WebServic服務時,有個很不爽的地方就是請求必須帶上命名空間。這個就沒axis爽了。
本章咱們就看看如何忽略命名空間。github

CXF攔截器

要解決命名空間的問題其實很簡單,CXF中提供了豐富的攔截器。廢話很少說了, 直接上代碼。web

import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.service.model.ServiceInfo;

/**
 * 去掉命名空間
 *
 * @author yueli
 * @date 2019-08-06 19:08
 */
public class ServerNameSpaceInterceptor extends AbstractPhaseInterceptor<Message> {

    public ServerNameSpaceInterceptor() {
        super(Phase.RECEIVE);
    }


    @Override
    public void handleMessage(Message message) throws Fault {
        for (ServiceInfo si : message.getExchange().getService().getServiceInfos()) {
            // 忽略掉命名空間的關鍵
            si.setProperty("soap.force.doclit.bare", true);
        }

    }
}

是否是很簡單, 到這咱們就能夠完美的解決命名空間的問題了。spring

有想要完整實例的請看着 >> https://github.com/yuelicn/sp...

或者直接clone >> https://github.com/yuelicn/sp...apache

相關文章
相關標籤/搜索