SpringBoot 集成WebService接口并使用
1.定义接口所需要的entity
public class Person {
private Integer id;
private String name;
private String niceName;
private Integer age;
private Double height;
}
2:创建接口类
//targetNamespace 根据自己的项目路径写
@WebService(targetNamespace = "http://oceanshan.com/webService")
public interface ApiService {
@WebMethod
Person insertPersonInfo(@WebParam(name = "PERSON", targetNamespace = "http://oceanshan.com/webService") String person);
}
3:实现接口
targetNamespace 和endpointInterface 根据自己的项目路径写
/**
* @author OceansHan
* @date 2021/1/26 15:48
* 接口实现类
*/
@Slf4j
@Component
@WebService(name = "ApiService",
targetNamespace = "http://oceanshan.com/webService",
endpointInterface = "com.oceanshan.webService.ApiService",
portName = "10000")
public class ApiServiceImpl implements ApiService {
@Override
public Person insertPersonInfo(String person) {
log.info("进入接口");
List<Person> list = JSONArray.parseArray(person, Person.class);
//TODO 逻辑处理
return list.get(0);
}
}
5:定义接口配置
/**
* @author OceansHan
* webservice 接口配置
*/
@Configuration
public class WebService {
@Bean
public ServletRegistrationBean wsServlet(){
return new ServletRegistrationBean(new CXFServlet(), "/ws/*");
}
@Resource
private ApiService apiService;
@Resource
@Qualifier(Bus.DEFAULT_BUS_ID)
private SpringBus bus;
@Bean
public Endpoint endpoint(){
EndpointImpl endpoint = new EndpointImpl(bus, apiService);
endpoint.publish("/ApiService");
return endpoint;
}
}
6:测试
浏览器测试地址:
http://localhost:8080/ws/ApiService?wsdl
soapui测试结果: