Spring引导Web服务- WSDL生成



我遵循了Spring的这个教程:https://spring.io/guides/gs/producing-web-service/并且工作得很好,但是,我没有得到它的一部分。演示应用程序接受一个XSD文件并从中生成WSDL。我的理解是XSD文件是wsdl的一个子集。Spring框架如何仅根据XSD文件找出缺失的信息?

您是正确的,WSDL包含更多的信息。但从xsd中提取了一些基本信息,如SOAP可以服务的请求名称和它应该接受的参数。

然后Spring使用注释处理来处理需要附加在WSDL

中的更多信息。
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getCountryRequest")
@ResponsePayload
public GetCountryResponse getCountry(@RequestPayload GetCountryRequest request)

Spring还从bean配置中提取信息,这些信息需要添加到WSDL

@Bean(name = "countries")
public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema countriesSchema) {
DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
wsdl11Definition.setPortTypeName("CountriesPort");
wsdl11Definition.setLocationUri("/ws");
wsdl11Definition.setTargetNamespace("http://spring.io/guides/gs-producing-web-service");
wsdl11Definition.setSchema(countriesSchema);
return wsdl11Definition;
}

WSDL中包含的所有其他未在项目中配置的内容,如果允许某些元素这样做,则作为Spring自身的默认配置应用。

使用这种方法的一个原因是,对于xsd,您可以使用WSDL的一些配置,但也可以创建java域对象,这些对象是需要的,以便可以处理请求和响应。

相关内容

  • 没有找到相关文章

最新更新