我刚开始使用Apache CXF(v2.7.6)。我正在使用wsdl2java生成WSDL的客户端,如:
wsdl2java -client -d src -exsh true -dns true -dex true -xjc-Xdv -wsdlLocation file:/some.wsdl -verbose -defaultValues -fe jaxws -db jaxb -wv 1.1 some.wsdl
在wsdl中,我有一些具有必需属性的元素,如:
<element name="Attribute">
<complexType>
<attribute name="id" type="string" use="required"></attribute>
</complexType>
</element>
对于这些元素,我想获得在java代码中生成的默认构造函数。目前它生成:
public static class Attribute {
@XmlAttribute(name = "id", required = true)
@XmlSchemaType(name = "anySimpleType")
protected String id;
我想要像:
public static class Attribute {
@XmlAttribute(name = "id", required = true)
@XmlSchemaType(name = "anySimpleType")
protected String id = new String("");
我已经搜索了很长时间(CXF,JAXB选项),但还没有找到。
是否有可能像我想要的那样生成java代码?如果是这样,你能指出我正确的方向(自定义绑定文件吗?)或提供一些关于如何做的小样本?
非常感谢,
JG
答案 0 :(得分:0)
我自己没有测试过,但似乎你可以使用“defaultValues”参数实现org.apache.cxf.tools.wsdlto.core.DefaultValueProvider接口并将其传递给wsdl2java命令行。
查看there的语法“defaultValues”
让我知道它是否有效。
编辑:正如dcsohl所说,你的要求似乎很奇怪,也许我们会错过一些所以请详细解释一下背景
答案 1 :(得分:0)
我通过创建XJC插件解决了我的问题。在看了之后,并不那么困难(因为我熟悉使用com.sun.codemodel。*类生成代码):