SOAP消息转换器

时间:2017-07-13 15:34:07

标签: java soap

我有一组我称之为的SOAP服务,让我们称之为与originalApplicationEndpoints对话的originalApplicationInterfaces。我被要求将SOAP数据包更改为不同的格式(让我们调用sillyInterface)并以不同的SOAP数据包格式将其发送到sillyEndpoints。实现sillyInterface的应用程序需要一些元数据,将sillyInterface转换回originalApplicationInterface格式并将其发送到originalEndpoint。回复通过系统返回。

我强调了这样一个事实,即我们应该将sillyInterface更改为originalApplicationInterfaces并使用soap标头来携带元数据,但它是由在sillyApplication团队工作的人设计的,他们对编程一无所知,只使用SOAP UI。我可以说他对他的sillyInterface非常满意,所以对于扔掉sillyInterface和实现originalApplicationInterface非常尴尬,就像所有企业模式设计书籍一样。

我不愿意更改对originalApplicationInterface的每个传出调用,并重新调整数据包,将其更改为sillyInterface。有很多originalApplicationInterfaces,这将是很多工作。

我已经看过创建某种MessageHandler并将端点攻击到sillyEndpoint但是这似乎是一个大规模的黑客攻击,随着接口的变化需要不断更新,或者他们意识到originalApplicationInterface是一个更好的方法。他们甚至可能意识到还有大约5个其他应用程序需要修改才能以与我的方式相同的方式使用sillyInterface,并且它将导致的破坏将是巨大的。我只是想如果我写了一个originalApplicationInterfaces到sillyInterface转换器然后我们都可以使用它。这也将突出sillyInterface的荒谬,也许他们会给愚蠢的人更多的训练。

我已经决定创建一个代理,它一方面实现originalApplicationInterfaces,从它的端点读取SOAP消息,将soap头中的数据包重新分配为sillyInterface的SOAP格式,将其发送到sillyApplication,读取回复并将其发回我的申请表。

自从我使用Spring Integration(XML)以来已经有一段时间了,所以我认为我已经开始使用Spring Boot Integration,但是我正在努力解决哪些类和注释问题使用大部分文档似乎都集中在xml配置上。

另外,我想尽可能避免编译originalApplicationInterfaces和sillyInterface,因为我认为我可以使用soap方法重新组织数据包来读取头和xml方法以重新调整格式并直接发送。

对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我离开了那份工作和那家公司。