package com.docus.server; import com.docus.server.report.webservice.IReportServer; import org.apache.cxf.jaxws.EndpointImpl; import lombok.RequiredArgsConstructor; 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 org.apache.cxf.Bus; import org.apache.cxf.bus.spring.SpringBus; import org.apache.cxf.transport.servlet.CXFServlet; import javax.xml.ws.Endpoint; @Configuration @RequiredArgsConstructor public class CxfConfig { private final IReportServer reportServer; /** * 注入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("reportEndPoint") public Endpoint userEndPoint() { EndpointImpl endpoint = new EndpointImpl(springBus(), reportServer); endpoint.publish("/api/report"); return endpoint; } }