- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在根据现有的 WSDL 使用 Java 构建 Web 服务。 wsimport
工具已生成绑定(bind)到服务架构中的元素的所有 Java 类。特别是,错误声明产生以下类:
@javax.xml.ws.WebFault(name = "Fault", targetNamespace = "http://my.company.com/service-1")
public class ServiceFault extends java.lang.Exception {
// constructors and faulInfo getter
}
现在我想扩展这个类,这样我就可以添加更多行为:
public class MyServiceFault extends ServiceFault {
// some behavior
}
当我现在从应用程序中抛出 MyServiceFault
实例时,我希望这些错误能够在 SOAP 应答中正确序列化为 XML。但相反,我得到的是这样的东西:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Some fault string.</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>
也就是说,我完全丢失了 failureInfo 元素。我的 SOAP 堆栈将 MyServiceFault
视为任何其他异常,而不是视为表示服务中的错误的异常。
我一开始以为是因为@WebFault
注解没有被MyServiceFault
继承,但是我在显式添加这个注解后再次尝试,没有成功。
知道我在这里做错了什么吗?
最佳答案
不管怎样,我都是这样实现的。
import javax.xml.ws.WebFault;
@WebFault(name = "SomeException")
public class SomeException extends Exception {
private FaultBean faultInfo;
public SomeException(String message, FaultBean faultInfo) {
super(message);
this.faultInfo = faultInfo;
}
public SomeException(String message, FaultBean faultInfo,
Throwable cause) {
super(message, cause);
this.faultInfo = faultInfo;
}
public FaultBean getFaultInfo() {
return faultInfo;
}
}
它会产生类似的东西:
<?xml version="1.0" ?>
<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>SomeErrorString</faultstring>
<detail>
<ns2:SomeException xmlns:ns2="http://namespace/">
<message>SomeErrorMessage</message>
</ns2:SomeException>
</detail>
</S:Fault>
</S:Body>
</S:Envelope>
关于java - 如何扩展 wsimport 生成的带有 WebFault 注释的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1920683/
我已经编写了一个网络服务并试图抛出我的自定义异常,但我收到错误请帮助我解决它。 import javax.jws.WebService; import javax.xml.ws.Endpoint; @
initiateBatchProcess 方法出错:必须捕获或声明抛出未报告的异常。我有一个带有 @webFault 注释的自定义异常类来处理 jaxb 异常,如本 link 中所建议的那样。 。 我
我正在根据现有的 WSDL 使用 Java 构建 Web 服务。 wsimport 工具已生成绑定(bind)到服务架构中的元素的所有 Java 类。特别是,错误声明产生以下类: @javax.xml
我正在尝试从 python 代码引发 Suds.WebFault。 __init__ 方法\构造函数采用三个参数 __init__(self, fault, document)。故障有fault.fa
我已经从 WSDL 模式生成了 POJO,但错误似乎没有映射到适当的 @Webfault 异常。我收到的是 ServerSOAPFaultException,而不是 AXLError。 生成的异常文件
我正在使用 JAX-RS/Apache CXF、JSON 开发客户端-服务器应用程序 我希望 Apache CXF 在两端透明地处理我的异常:这意味着将异常转换为 bean,使用我的 Jackson
我正在尝试使用 @WebFault 注释,并且我有一个可以抛出多个异常的 Web 服务,例如以下示例类 MyException1。 遵循 http://java.globinch.com/enterp
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getExplicitFaultBeanType()方法的一些代码示例,展示了WebF
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.findExplicitFaultBean()方法的一些代码示例,展示了WebFaul
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getElementName()方法的一些代码示例,展示了WebFault.getEl
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getJavaDoc()方法的一些代码示例,展示了WebFault.getJavaDo
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getProperties()方法的一些代码示例,展示了WebFault.getPro
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.calculateNamespaceURI()方法的一些代码示例,展示了WebFaul
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.()方法的一些代码示例,展示了WebFault.()的具体用法。这些代码示例主要来源于
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getSuperclass()方法的一些代码示例,展示了WebFault.getSup
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getSimpleName()方法的一些代码示例,展示了WebFault.getSim
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getElementDocs()方法的一些代码示例,展示了WebFault.getEl
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getTargetNamespace()方法的一些代码示例,展示了WebFault.g
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getPosition()方法的一些代码示例,展示了WebFault.getPosit
本文整理了Java中org.codehaus.enunciate.contract.jaxws.WebFault.getConstructors()方法的一些代码示例,展示了WebFault.getC
我是一名优秀的程序员,十分优秀!