在本春季参考文献中(第3章编写契约优先Web服务)
http://docs.spring.io/spring-ws/site/reference/html/tutorial.html
它说 "服务合同通常表示为WSDL文件。请注意,在Spring-WS中,不需要手动编写WSDL。基于XSD和一些约定,Spring-WS可以为您创建WSDL ..."
这也是示例应用程序中实现的方法:
https://github.com/spring-guides/gs-soap-service.git
只是想知道......如果你做第一次合同",为什么你想从XSD开始,让框架生成WSDL? 我认为背后的想法"合同第一"最好的做法是让你最大限度地控制界面, 确保不同SOAP服务框架,工具,语言等之间的最大兼容性。
虽然XSD包含数据类型和请求/响应对象类型,但它没有定义实际的服务操作(可能还有其他一些东西?)...
是否存在您在XSD中未定义的内容中遇到不同工具之间不兼容的风险?
希望对此有所澄清...
答案 0 :(得分:1)
使用spring-ws的经验的主要原因。 WSDL可以由Spring动态生成。考虑到它包含端点(在不同的景观之间),这是非常有利的。通常使用基础XSD来定义常用的数据元素。此外,在定义XSD之后,您可以使用jaxb为源代码生成必要的类文件。
如您所见,通过定义XSD,从而从中生成类文件。您的代码库正在成为合法的Web服务。
答案 1 :(得分:1)
请看这个比较: https://dzone.com/articles/apache-cxf-vs-apache-axis-vs
“在XSD中未定义的内容中,您是否会遇到不同工具之间不兼容的风险?”
基本上,Spring所做的是让你通过代码定义服务,并使用从XSD生成的域对象。我猜你不会有这方面的问题。
但是,从我目前的经验来看,因为Spring并不完全兼容JAX-WS,所以你可能会遇到一些实现问题,尤其是当你在第三方团队工作时。例如,spring-ws不支持相同的命名方法&财产对象。
除此之外,它很容易设置和使用