【问题标题】:SOA Design, Web services & OOPSOA 设计、Web 服务和 OOP
【发布时间】:2012-11-01 03:58:34
【问题描述】:
在工作(银行)中,我们正在重新设计我们的 MW / Web 服务。我们正在使用自下而上的方法来构建这些服务。我们正在使用Java,jax-ws。所以我需要创建要遵循的规则。所以到目前为止我有两个问题:
- 我们应该为我们的对象字段创建类型,即在类 Client 中,我们应该创建一个 CellPhone 对象还是简单地使用字符串。我可以看到优点和缺点,对象会变得很重,但易于验证和控制。
还有其他想法吗?
- 我们应该使用 SOAP 内置错误还是创建我们自己的错误状态代码(可能在 SOAP 标头中)。我真的很喜欢 SOAP 错误,因为它直接映射到 Java Exception。
提前致谢
【问题讨论】:
标签:
oop
jakarta-ee
soap
jax-ws
middleware
【解决方案1】:
一些答案:
1. 请记住,Web 服务(我假设您在谈论基于 SOAP 的 WS,
正如您提到的 jax-ws 而不是 jax-rs)使用 SOAP,它是一种基于 XML 的协议。
2. 对于您创建的每个类,您的 WSDL 文件中都有一个类型。
3. SOAP 信封(包含消息的“正文”)还将包含额外的 XML 元素来表示手机 - 您正在创造更多流量。
总结 1 - 3 以及你在谈论手机的事实,我不明白你为什么需要为此上课。
您是在讨论实际上模拟 CellPhone
(即具有“供应商”、“运营商”等属性的手机设备)的 CellPhoen 类,还是在谈论手机号码?
如果这只是手机号码,那么我基于 1-3 的建议仍然有效。
处理验证:
您可以使用许多验证器名作来验证电话号码。
Java 中甚至还有一个JSR 用于验证。
我建议您查看这里以了解符合 JSR 303 的 Hibernate-Validator 框架。
也可以下载oVirt开源项目的源码,
并在我们的 BusinessEntiies 中查看 oVirt-engine(查看 ovirt-engine/backend/manager/modules/common),并查看一些关于如何使用这些验证器的“现实生活”示例。
关于错误 - 您可以创建自己的错误,并将它们映射到 Java 异常,我认为这没有什么坏处。