java - 在 Java Web 服务中引发用户定义的异常时出现错误

标签 java web-services exception

我无法在 Web 服务的方法中引发异常。当我在方法中抛出异常并尝试从 Soap UI 测试我的应用程序时,它会给出该错误:

Failed to import WSDL

java.lang.NullPointerException

我的问题是:

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

(即有一个方法返回由姓名给出的学生。但是,如果学生在数据库中找不到,则会抛出错误?)

最佳答案

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

示例取自 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 错误代码。

关于java - 在 Java Web 服务中引发用户定义的异常时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10790299/

相关文章:

java - 当传递给 main 的参数太多/太少时抛出异常

java - request.getHeader(String value) 参数列表

java - 在同一场 war 中从另一个 Web 服务调用 Web 服务 - apache cxf

javascript - jQuery AJAX 附加到 Json 返回数据 "d:null"

c++ - 在哪里定义异常类,在类内部还是在更高级别?

c# - 在 C++/CLI 中处理 C# 异常

集群环境中的 Java Batch 作业

java - Bazel 中的 Log4J 自定义插件

java - Neo4j 3.5 中的事务未实现 java.lang.AutoCloseable

c# - LiveCycle PDF 以 XML 形式提交到 .NET Web 服务