上一章咱們介紹瞭如何用springBoot 來搭建一個WebService服務《SpringBoot 使用CXF 集成WebService》,還不瞭解的同窗能夠去看下。git
在使用CXF搭建的WebServic服務時,有個很不爽的地方就是請求必須帶上命名空間。這個就沒axis爽了。
本章咱們就看看如何忽略命名空間。github
要解決命名空間的問題其實很簡單,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