我为某些SOAP服务做了一个REST包装器。现在,我想添加Hateoas支持,但对于使用maven-jaxb2-plugin
库的自动创建类的资源。例如自动生成的类BookDetails
:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BookDetails", propOrder = {
"id",
"name",
"title",
"author"
})
public class BookDetails {
@XmlElement(required = true)
protected String id;>
...
}
我无法从ResourceSupport
扩展该类,因为如果.wsdl
更改BookDetails
类,则将重新创建和覆盖。另外,如果创建了一个从BookDetails
(例如BookDetailsResource
(延伸的新类,那么我将无法从ResourceSupport
延伸。有任何想法或以前的问题类似吗?
这是一个教程,讲述了某人需要实施的如何创建包装器。https://howtodoinjava.com/spring/spring-boot/spring-spring-soap-client-webservicetemplate/
,而不是尝试创建一个域模型以将两者映射到这两者,最好使用SOAP和HAL的单独域模型。
以这种方式,您可以使用Spring Web服务部署其合同优先方法并生成基于WSDL的BookDetails
域对象。
从那里您可以定义您的REST控制器,并且是获取/发布/put等的各种方法。
最后一步是定义利用您的REST控制器的ResourceAssembler<BookDetails, Resource<BookDetails>>
,最终将基于SOAP的BookDetails
对象转换为包括相关链接的HAL表示。
查看https://spring.io/guides/tutorials/rest/,查看如何构造应用程序的其余部分,然后将肥皂呼叫视为是基础服务层,您的休息控制器可以调用。