Webservices:请求 - 响应映射器
问题描述:
这更像是一个设计模式问题。Webservices:请求 - 响应映射器
我的客户端应用程序[已实现并将作为计划批处理作业的一部分以及消息处理应用程序运行]使SOAP通过对第三方引擎的HTTP调用获取一些成员资格数据。由于底层绑定是根据JAX-RPC完成的,我的SOAP响应最终被转换/复制到生成的客户端存根中。
现在,我的问题是维护我自己的域对象并从服务的响应对象复制数据更好还是可以直接使用存根对象进行其他处理!
有什么建议吗?
答
这个问题会有点主观。我更喜欢总是翻译自己的域对象,以防万一需要更换Web服务实现。如果他们转换到REST风格的Web服务,或者只是简单地在版本升级时更改他们的wsdl,那么如果您在整个应用程序中使用存根类,则可能会很不幸。
有缺点,这种做法虽然:
- 您将需要保持一组类似的类
- 如果服务永远不会改变,你不会看到你的努力,任何回报
- 你可以如果它证明有用,请稍后更改它
反对使用存根类的参数是,您可能必须更改Web服务框架(或重要版本)并从WSDL开始,这些可能会生成diff不同的存根。 建议将一组DTOs作为smp7d提供,这是一个很好的隔离层,但我希望你的对象不是太复杂:从stubs写入DTOs是一件非常痛苦的事情。 – 2012-03-19 14:24:20