- 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/
我正在从命令行运行 wsimport 以从 WSDL 生成 java 类,如下所示。 wsimport -J-Djavax.xml.accessExternalDTD=all -J-
当我尝试使用 wsimport从命令提示符使用以下命令,它工作正常: wsimport -d generated C:\Users\generated\wsdlfile.xml 但是,当我尝试使用 w
我有一个简单的 ant 脚本来从 sdl 构建我的类。不幸的是 wsimport 立即失败。我怀疑这与类路径有关。 这是它产生的输出:
有几个这样的问题。但我的 PATH 变量是正确的 ;%JAVA_HOME%\bin; 我的JAVA_HOME是C:\Program Files\Java\jdk1.8.0_131 当我输入 java
这很奇怪。 我正在使用 maven 的 wsimport 插件生成肥皂服务的客户端代码,如下所示... org.jvnet.jax-ws-commons
对另一个“无法找到证书”问题表示歉意。 我正在 Windows 7 计算机上进行开发。我正在使用多个 Java 版本,因此明确了所使用的 java 版本(此处为 Java6)的路径。我通过以下两行实现
我正在使用 wsimport 从服务器导入 wsdl 文件。这是我正在使用的命令: X:>wsimport -keep -verbose http://xxxxxxxxxx parsing WSDL.
我使用 wsimport 从 WSDL 文件生成代理类。生成了 A 类,但是对应于 A 的构造函数参数的 B 类却没有。这可能是什么原因?谢谢。 这是 WSDL:
我正在生成一个具有 XSD 架构的对象 但是生成 Java 代码为 protected ProjectDataObj.RoleAssignments roleAss
网络服务新手问题: wsimport 为我的 wsdl-File 生成了两个类:MyException 和 MyException_Exception,但是 MyException 没有扩展异常。如何
我正在使用 wsimport 从 WSDL 文件(也已生成)生成我的 JAX-WS 客户端,但在客户端生成与服务器端不匹配的枚举时遇到问题。 我的 WSDL 文件中的适用片段显示了正确的条目:
我在尝试生成一些 Java 类时遇到问题。 C:\Users\kon\Desktop>wsimport -keep -verbose -extension -d generated http://XX
当我使用 wsimport 为某些服务生成代理时,每个端口的生成方法签名似乎没有使用 WSDL 中指定的复杂类型;但我注意到它在其他一些服务中也是如此。 这发生在多个服务上,但最近的例子是亚马逊的 A
我有一个使用相互 SSL 身份验证的 Web 服务。安装客户端证书后,我可以在浏览器中正常访问它。 我需要能够使用 wsimport 访问它以生成 Java 代码来访问该服务。 如何设置我的凭据以便我
我使用 wsimport 生成我的 java stub 文件。为此,我在 Eclipse 中使用了一个 ant 构建文件:
我正在尝试在 https://api.sendwordnow.com/webservices/v3/users.svc?wsdl 上使用 wsimport .这是我正在使用的 wsimport。 ws
首先,我想让您知道我已经可以连接到 Web 服务服务器。我问这个问题是因为我想更深入地了解 wsimport 生成的客户端是如何工作的。根据我的研究,wsimport 使用 JAXWS。请注意,我不了
我正在尝试使用 wsimport 生成文件,但出现上述错误。我已经完成了以下步骤: 1) JAVA_HOME - 设置为 C:\Program Files\Java\jre72) c:\Desktop
我正在尝试从远程 wsdl 导入数据。我用maven编写了简单的代码如下 org.codehaus.mojo jaxws-maven-plugin
我在使用基于 wsimport 生成的类的客户端代码时收到以下 Web 服务异常: javax.xml.ws.WebServiceException: @Action and @WebMethod(a
我是一名优秀的程序员,十分优秀!