4

在使用 .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 工件会导致OperationOneOperationTwo出现以下 Java 异常:

  • IServiceOperationOneArgumentOutOfRangeExceptionFaultFaultMessage
  • IServiceOperationTwoArgumentOutOfRangeExceptionFaultFaultMessage

它可以工作,但是很难看,而且我的代码变得很奇怪,因为同一件事有两个例外(在此示例中:参数超出范围)。

  • 我是否以正确的方式使用通用 FaultException?
  • 如何使用 wsimport 正确使用此类 WSDL 以仅生成 1 个异常?
4

0 回答 0