我有一个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。
提前非常感谢...
最佳答案
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