spring-boot - 在 Spring Web Service (SOAP) 中实现 XSD 的异常类
问题描述
我正在使用 Spring WS 在 Spring Boot 中创建一个 SOAP Web 服务。我正在重新创建的服务是在使用 JavaX JWS 的旧技术上运行的服务的克隆,其类是从 XSD 生成的。
我遇到的问题是相关的/实际上是相同的: 1. 我似乎无法将“新”Web 服务中抛出的异常“接收”回给消费者。
2. 在 SOAPUI 中查询端点时,Web Service 的 Exception 类看起来好像是一种单向方法。
我相信这是因为 Spring WS 没有正确实现/理解异常类。
当新服务中抛出异常时,消费者会收到一个com.sun.xml.internal.ws.fault.ServerSOAPFaultException
,而不是 Web 服务中抛出的异常。
原始 JavaX 服务返回(TestException
用作示例):
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Server</faultcode>
<faultstring>Test</faultstring>
<detail>
<ns2:TestException xmlns:ns2="http://test.co.uk/">
<code>abc123</code>
<message>Test</message>
</ns2:TestException>
</detail>
</S:Fault>
</S:Body>
</S:Envelope>
我找不到有关如何构建/配置异常以生成相同的<ns2>
嵌套元素的任何文档或指南。有没有办法准确地将异常传回,使其看起来与服务中的一样?
解决方案
推荐阅读
- asp.net-core-mvc - Asp.net 身份。记住我,不要工作
- json - 保存json文件时Powershell不输出包装括号
- java - 如何使用 Akka Java 从非演员类中的接待员访问演员?
- permissions - 如何拒绝访问 MarkLogic 10 declareUpdate(); 特定环境中的特定用户?
- javascript - 在反应中向 Webpack 添加服务工作者
- c++ - 为什么我有两个请求来获取相同的页面/uri?
- mysql - MySQL子查询问题来自
- spring-data-jpa - 春季更新方法不更新
- windows - ansible解压Windows目标上的文件
- python - 使用 pyinstaller 转换为 .exe 时,简单的打印语句在 python .py 中不起作用