1

我有一个 wsdl,我正在使用 wsimport 生成类。

我需要一些类来实现在另一个框架中定义的接口。

一位 Java 开发人员告诉我,使用 wsimport 选项可以做到这一点。我假设该选项是-b。

找不到有关如何创建绑定文件来做我需要的文档。所有示例都显示了如何更改包名。

下面是我需要的一个例子

示例 WSDL

<xsd:complexType name="GetAandBRequest">
<xsd:sequence>
  <xsd:element name="A" type="xsd:int" />
  <xsd:element name="B" type="xsd:int" />
  </xsd:sequence>
</xsd:complexType>

WSImport 生成

    public class GetAandBRequest {
    protected int a;
    protected int b;

    public int getA() {
        return a;
    }
    public void setA(int value) {
        this.a = value;
    }
    public int getB() {
        return storeNum;
    }
   public void setB(int value) {
        this.b = value;
    }
    }

我需要的 wsimport 是:

public class GetAandBRequest implements IMessage {
    protected int a;
    protected int b;

    public int getA() {
        return a;
    }
    public void setA(int value) {
        this.a = value;
    }
    public int getB() {
        return storeNum;
    }
   public void setB(int value) {
        this.b = value;
    }
}

注意实现 IMessage。

这可能与 wsimport 吗?如果不可能,你如何解决这样的问题。有很多消息。我不想每次需要重新生成 wsdl 和模式时都手动添加实现 IMessage。

非常感谢提前...

4

1 回答 1

1

xjc 选项可以传递给 wsimport

google xjc 继承或 jaxb2 继承

<jaxb:bindings version="1.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
jaxb:extensionBindingPrefixes="inheritance">

<jaxb:bindings schemaLocation="customer.xsd" node="/xsd:schema">
    <jaxb:bindings node="xsd:complexType[@name='customer']">
        <inheritance:implements>com.acme.foo.Actor</inheritance:implements>
    </jaxb:bindings>
</jaxb:bindings>

http://confluence.highsource.org/display/J2B/Using+JAXB2+Basics+Plugins+with+CXF

http://confluence.highsource.org/display/J2B/JAXB2+Basics+Plugins

http://www.javaworld.com/article/2074330/core-java/adding-common-methods-to-jaxb-generated-java-classes--jaxb2-basics-plugins-.html

于 2014-09-17T15:26:22.557 回答