我正在使用 jaxb-xjc(版本 2.2.4-1,在 Gradle 任务中)从 wsdl 生成 Java 类(用作 Web 服务客户端)。
根据 wsdl 文档,某些端点可能会抛出自定义异常。
生成的代码看起来不错,但有一个细节除外:生成的异常类不扩展 Throwable(或任何其他可以扩展它的类)。 WSDL 似乎没问题,因为这些端点中有一个名为错误元素(示例):
<wsdl:fault name="IdentityNotFoundException" message="work_v2:IdentityNotFoundException"/>
有没有办法配置 xjc 使这些自定义异常类成为“真正的”异常类?当前 Gradle/xjc 任务配置为:
xjc(destdir: sourcesDir, schema: "src/main/resources/wsdl/workService_v2.wsdl",
package: "workService.generated") {
arg(value: "-wsdl")
produces(dir: sourcesDir, includes: "**/*.java")
}
最佳答案
找到了解决此问题的方法:
我没有使用 xjc,而是使用了另一个生成器:wsdl2java
令人惊讶的是 - 新生成的类现在扩展了 Exception 类! wsdl2java 使用的 Gradle 设置是根据其 Github 页面中的示例进行的。
关于java - JAXB/xjc 生成的异常类不可抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29539330/