在使用 .NET WCF 创建 Web 服务并使用 JAX-WS ( wsimport )使用它时,我正在寻找有关以正确方式定义 SOAP 错误的帮助/建议。
假设我的服务如下所示:
[ServiceContract(Namespace = "http://sub.pub.com")]
public interface IService
{
[OperationContract]
[FaultContract(typeof(ArgumentOutOfRangeException))]
void OperationOne(int deviceId, int socket);
[OperationContract]
[FaultContract(typeof(ArgumentOutOfRangeException))]
void OperationTwo(int deviceId, int socket);
}
在我服务的某个地方,我正在做以下事情......
throw new FaultException<ArgumentOutOfRangeException>(...);
为我的 WCF 服务的 WSDL 生成 JAX-WS 工件会导致OperationOne和OperationTwo出现以下 Java 异常:
- IServiceOperationOneArgumentOutOfRangeExceptionFaultFaultMessage
- IServiceOperationTwoArgumentOutOfRangeExceptionFaultFaultMessage
它可以工作,但是很难看,而且我的代码变得很奇怪,因为同一件事有两个例外(在此示例中:参数超出范围)。
- 我是否以正确的方式使用通用 FaultException?
- 如何使用 wsimport 正确使用此类 WSDL 以仅生成 1 个异常?