SpringBoot 는 CXF 를 사용 하여 웹 서 비 스 를 통합 하 는 방법 입 니 다.
5858 단어 SpringBootCXFWebService
웹 서 비 스 는 저 에 게 익숙 하고 낯 설 어서 거의 6,7 년 동안 그 를 보지 못 했 습 니 다.구체 적 인 소 개 는 얼마 되 지 않 았 습 니 다.알 고 싶 은 바 이 두 백과 에서 상세 하 게 말 했 습 니 다.
갑자기 웹 서 비 스 를 연구 하 는 이 유 는 XX 프로젝트 에 적합 한 층 을 만들어 야 한 다 는 수 요 를 받 았 기 때문에 그들 은 원래 시스템 이 웹 서 비 스 를 사용 하여 만 들 었 기 때문에...
이 오래된 기술 이 현재 가장 유행 하 는 프레임 워 크 인 SpringBoot 와 어떻게 결합 하 는 지 살 펴 보 자.
2.SpringBoot 통합 웹 서비스
2.1 도입 의존
compile('org.springframework.boot:spring-boot-starter-web-services',
'org.apache.cxf:cxf-spring-boot-starter-jaxws:3.2.5',
'org.apache.cxf:cxf-rt-frontend-jaxws:3.1.6',
'org.apache.cxf:cxf-rt-transports-http:3.1.6')
저 는 Gradle 로 프로젝트 를 만 들 었 습 니 다.Maven 처럼 jar 의존 도 를 추가 하면 됩 니 다.2.2 웹 서비스 인터페이스 개발
/**
* serviceName
* targetNamesPace : ,
@javax.jws.WebService(serviceName = "gzcxfw_wx_webserviceService",
targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx")
public interface WebService {
/**
*
* @param wxid ID
* @param xm
* @param sfzh
* @param sjh
* @param macId
* @param password
* @return Base64
*/
@WebMethod(operationName = "gzcxfw_hlw_wxrz_Info_cs")
@WebResult(name = "gzcxfw_hlw_wxrz_Info_csReturn")
String gzcxfwHlwWxrzInfoCs(@WebParam(name = "WXID", targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx") String wxid, @WebParam(name = "XM") String xm,
@WebParam(name = "SFZH", targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx") String sfzh, @WebParam(name = "SJH") String sjh,
@WebParam(name = "mac_id", targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx") String macId, @WebParam(name = "password") String password
);
2.3 실현 류
/**
* @author yueli
* @date 2019-08-05 19:17
*/
@javax.jws.WebService(serviceName = "gzcxfw_wx_webserviceService",
targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx")
public class WebServiceImpl implements WebService {
private static Logger logger = LoggerFactory.getLogger(CatalogInfoImpl.class);
@Override
public String gzcxfwHlwWxrzInfoCs(String wxid, String xm, String sfzh, String sjh, String macId, String password) {
logger.info("gzcxfwHlwWxrzInfoCs: - wxid:{}, xm:{}, sfzh:{}, sjh:{}, macId:{}, pawd:{}", wxid, xm, sfzh,
macId, password);
return wxid + “:” + sfzh;
}
실현 류 는 간단 하 다.우리 가 일반적으로 쓰 는 것 과 다 를 것 이 없다.2.4 발표
package com.tusdao.base.configuration;
import com.tusdao.TusdaoWebserviceApplication;
import com.tusdao.webservice.service.WebService;
import com.tusdao.webservice.service.impl.WebServiceImpl;
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.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import javax.xml.ws.Endpoint;
/**
* @author yueli
* @date 2019-08-05 19:24
*/
@Configuration
@ComponentScan(basePackageClasses = TusdaoWebserviceApplication.class)
public class CxfConfig {
@SuppressWarnings("all")
@Bean(name = "cxfServletRegistration")
public ServletRegistrationBean dispatcherServlet() {
//
return new ServletRegistrationBean(new CXFServlet(), "/axis/services/*");
}
@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus() {
return new SpringBus();
}
@Bean
public WebService webService() {
return new WebServiceImpl();
}
/**
* WebServiceDemoService webservice
*
* @return
*/
@Bean
public Endpoint endpoint() {
EndpointImpl endpoint = new EndpointImpl(springBus(), webService());
endpoint.publish("/bdcgzcxfw_wx");
endpoint.getInInterceptors().add(new ServerNameSpaceInterceptor());
//endpoint.getInInterceptors().add(new InInterceptor());
return endpoint;
}
}
이것 은 간단 합 니 다.우 리 는 사용 할 때 직접 복사 해서 가면 됩 니 다.마지막 으로 프로젝트 를 시작 하 는 겁 니 다.
시작 후 항목 주 소 를 직접 입력 합 니 다:http://localhost:8090/지정 한 서비스 이름
생 성 된 ssdl 을 볼 수 있 습 니 다.이 쯤 되면 기본 건설 이 끝 납 니 다.테스트 는 여기 서 쓰 지 않 습 니 다.wdl 로 클 라 이언 트 를 만 들 거나 http 로 xml 형식 데 이 터 를 보 내 요청 할 수 있 습 니 다.
3.총화
springboot 은 CXF 통합 웹 서비스 개발 을 사용 하 는 것 이 간단 합 니 다.외부 tomcat 에 따로 배치 하지 않 아 도 됩 니 다.이것 은 우리 가 springboot 개발 을 잘 아 는 학생 들 에 게 좋 은 경험 을 가 져 다 주 었 습 니 다.
전체 인 스 턴 스 를 원 하 는 것 은 보 세 요>https://github.com/yuelicn/springboot-webservice-cxf
또는 직접 clone>>https://github.com/yuelicn/springboot-webservice-cxf
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.