返回介绍

4.26 Web Service

发布于 2021-03-17 13:07:52 字数 1349 浏览 869 评论 0 收藏 0

Spring Boot提供Web服务自动配置,因此您必须做的就是定义端点。

可以使用spring-boot-starter-webservices模块轻松访问Spring Web Services功能。

可以分别为WSDL和XSD自动创建SimpleWsdl11Definition和SimpleXsdSchema bean。 为此,请配置其位置,如以下示例所示:

spring.webservices.wsdl-locations=classpath:/wsdl

4.26.1 使用WebServiceTemplate调用Web服务

如果需要从应用程序调用远程Web服务,则可以使用WebServiceTemplate类。 由于WebServiceTemplate实例在使用之前通常需要进行自定义,因此Spring Boot不提供任何单个自动配置的WebServiceTemplate bean。 但是,它会自动配置WebServiceTemplateBuilder,可用于在需要时创建WebServiceTemplate实例。

以下代码显示了一个典型示例:

@Service
public class MyService {

	private final WebServiceTemplate webServiceTemplate;

	public MyService(WebServiceTemplateBuilder webServiceTemplateBuilder) {
		this.webServiceTemplate = webServiceTemplateBuilder.build();
	}

	public DetailsResp someWsCall(DetailsReq detailsReq) {
		 return (DetailsResp) this.webServiceTemplate.marshalSendAndReceive(detailsReq, new SoapActionCallback(ACTION));

	}

}

默认情况下,WebServiceTemplateBuilder使用类路径上的可用HTTP客户端库检测合适的基于HTTP的WebServiceMessageSender。 您还可以按如下方式自定义读取和连接超时:

@Bean
public WebServiceTemplate webServiceTemplate(WebServiceTemplateBuilder builder) {
	return builder.messageSenders(new HttpWebServiceMessageSenderBuilder()
			.setConnectTimeout(5000).setReadTimeout(2000).build()).build();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文