在Java Web Services上抛出用户定义的异常时出错

时间:2012-05-28 20:51:34

标签: java web-services exception

我不能在我的网络服务方法中抛出异常。当我在我的方法中抛出异常并尝试从Soap UI测试我的应用程序时,它会给出错误:

Failed to import WSDL

java.lang.NullPointerException

我的问题是:

如何为Java Web Services编写用户定义的异常?

(即有一种方法可以返回一个名字给出的学生。但是如果学生在数据库找不到,会抛出错误吗?)

1 个答案:

答案 0 :(得分:1)

例外是一等公民,被称为 。基本上,错误是您的操作可以返回的另一个消息 - 但具有不同的语义。通常,故障会在端点接口中转换为强类型异常。

取自Web services hints and tips: Design reusable WSDL faults

的示例
<message name="faultMsg"><part name="fault" element="tns:fault"/>
<portType name="Interface">
    <operation name="op1">
        <input name="op1Request" message="tns:op1RequestMsg"/>
        <output name="op1Response" message="tns:op1ResponseMsg"/>
        <fault name="fault" message="tns:faultMsg"/>
    </operation>
</portType>

如果从服务方法中抛出suvh异常,则会将其转换为<fault>消息并在客户端重新抛出。如果您只是在服务器端抛出任意消息,则将其视为错误,并可能导致例如在客户端有500个错误代码。