首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用CXF生成WebService生成Exception_Exception类

用CXF生成WebService生成Exception_Exception类
EN

Stack Overflow用户
提问于 2011-11-28 16:01:00
回答 2查看 1.7K关注 0票数 3

我们有一个Web实现,它抛出一个自定义SecurityException

代码语言:javascript
复制
public class SecurityException extends Exception {

然后使用maven插件java2ws将服务转换为wsdl。生成的.wsdl文件包含

代码语言:javascript
复制
  <xs:element name="SecurityException" type="tns:SecurityException"/>
  <xs:complexType name="SecurityException">
  ...
  <wsdl:message name="SecurityException">
    <wsdl:part name="SecurityException" element="tns:SecurityException">
    </wsdl:part>
  </wsdl:message>

现在,如果我在SecurityException文件上运行wsdl2java,就会得到一个.wsdl文件:

代码语言:javascript
复制
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SecurityException")
public class SecurityException {


}

和一个SecurityException_Exception文件:

代码语言:javascript
复制
@WebFault(name = "SecurityException", targetNamespace = "http://service...../")
public class SecurityException_Exception extends Exception {


private ....SecurityException securityException;

public SecurityException_Exception() {
    super();
}

public SecurityException_Exception(String message) {
    super(message);
}

public SecurityException_Exception(String message, Throwable cause) {
    super(message, cause);
}

public SecurityException_Exception(String message, ....SecurityException securityException) {
    super(message);
    this.securityException = securityException;
}

public SecurityException_Exception(String message, ....SecurityException securityException, Throwable cause) {
    super(message, cause);
    this.securityException = securityException;
}

public ....SecurityException getFaultInfo() {
    return this.securityException;
}
}

我怎样才能避免不必要的课程?为什么它会产生呢?为什么它不能重新创造旧的阶级呢?

代码语言:javascript
复制
SecurityException extends Exception

(我们使用的是cxf版本2.5,所以我发现的带有超类的<2.3 bug似乎不适用)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-03 06:58:14

弄明白了..。从表面上看,您无法避免助手类,因为异常在web服务中使用时必须包装,因为它们是不可序列化的。

票数 1
EN

Stack Overflow用户

发布于 2013-10-02 15:14:45

我正在使用内置于maven中的JAXB (jaxws-maven-plugin / wsimport目标),但我也遇到了同样的问题。(它生成了BusinessException和BusinessException_Exception)。

我的修正是将异常放在另一个名称空间中。因此,现在我有两个BusinessException文件,在两个不同的文件夹中生成,其中一个是以另一个作为参数的异常。编译ok,没有Exception_Exception丑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8298577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档