Java SOAP消息转换器

Java SOAP消息转换器,java,soap,Java,Soap,我有一组我称之为的SOAP服务,让我们称它们为与原始应用程序点对话的原始应用程序接口。我被要求将SOAP数据包更改为不同的格式(我们称之为sillyInterface),并以不同的SOAP数据包格式将其发送给sillyEndpoints。实现sillyInterface的应用程序将一些元数据取出,将sillyInterface转换回原始application Interface格式,并将其发送到原始AllEndpoint。回复通过系统返回 我强调了这样一个事实:我们应该将sillyInterfa

我有一组我称之为的SOAP服务,让我们称它们为与原始应用程序点对话的原始应用程序接口。我被要求将SOAP数据包更改为不同的格式(我们称之为sillyInterface),并以不同的SOAP数据包格式将其发送给sillyEndpoints。实现sillyInterface的应用程序将一些元数据取出,将sillyInterface转换回原始application Interface格式,并将其发送到原始AllEndpoint。回复通过系统返回

我强调了这样一个事实:我们应该将sillyInterface更改为原始的应用程序接口,并使用soap头来携带元数据,但它是由sillyApplication团队中的一名工作人员设计的,他对编程一无所知,只使用soap UI。我可以告诉他,他对自己的sillyInterface非常满意,因此对于抛弃sillyInterface并像所有企业模式设计书籍建议的那样实现原始应用程序界面,他也感到非常尴尬

我不愿意将每个传出呼叫都更改为originalApplicationInterface,并重新抖动数据包,将其更改为sillyInterface。有许多原始的应用程序界面,这将是一个很大的工作

我已经考虑过创建某种MessageHandler并将端点黑客攻击到sillyEndpoint,但这似乎是一个大规模的黑客攻击,需要随着时间的推移不断更新接口,或者他们意识到originalApplicationInterface是一个更好的方法。他们甚至可能意识到,还有大约5个应用程序需要修改,以使用与mine相同的sillyInterface,它将造成巨大的中断。我只是想如果我给sillyInterface转换器写一个原始的应用程序接口,那么我们都可以使用它。同时,这也将突出sillyInterface的荒谬之处,也许他们会给sillyMan更多的训练

我决定创建一个代理,它在一端实现原始应用程序接口,从其端点读取SOAP消息,将SOAP头中的数据包重新调整为sillyInterface的SOAP格式,将其发送到sillyApplication,读取回复并将其发送回我的应用程序

我使用SpringIntegration(XML)已经有一段时间了,所以我想尝试一下SpringBoot集成,但我正在努力使用哪些类和注释,因为大多数文档似乎都关注XML配置

此外,如果可能的话,我希望避免编译原始的ApplicationInterface和sillyInterface,因为我认为我可以使用soap方法重新组织数据包,以读取标头和xml方法来重新调整格式并直接发送


如果有任何帮助,我们将不胜感激。

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

我想这是一个现实意义上的可行答案。:)不过我还是想知道答案。我认为创建一个智能soap代理很容易,但你必须知道所有的咒语,它们没有写在任何地方:(在这种情况下,你真的应该取消最佳答案的标记,以便其他人可以随时查看和回答。此外,尽可能简化你的问题,或者至少突出实际问题的细节,可以帮助观众更快地了解问题的实质,并确定他们是否有什么需要回答的。)做出贡献,而不是呆呆地继续前进。@BrianLacy你是对的。那家公司让我感到压力和愤怒,我认为这与问题的方式有点像;)这有点像TL;博士,等我有空的时候再整理!