package com.docus.server; import com.docus.server.message.consts.InteractiveMethod; import com.docus.server.message.service.UnifyMessageService; import org.apache.cxf.Bus; import org.apache.cxf.bus.spring.SpringBus; import org.apache.cxf.jaxws.EndpointImpl; import org.apache.cxf.transport.servlet.CXFServlet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.xml.ws.Endpoint; @Configuration public class CxfConfig { private UnifyMessageService unifyMessageService; @Autowired @Qualifier(InteractiveMethod.WS) public void setUnifyMessageService(UnifyMessageService unifyMessageService) { this.unifyMessageService = unifyMessageService; } /** * 注入Servlet,注意beanName不能为dispatcherServlet * @author Fang Ruichuan * @date 2022/11/14 19:16 */ @Bean public ServletRegistrationBean cxfServlet() { return new ServletRegistrationBean(new CXFServlet(), "/webservice/*"); } @Bean(name = Bus.DEFAULT_BUS_ID) public SpringBus springBus() { return new SpringBus(); } @Bean @Qualifier("unifyEndPoint") public Endpoint unifyEndPoint() { EndpointImpl endpoint = new EndpointImpl(springBus(), null); endpoint.publish("/api/unify"); return endpoint; } }