0

我刚刚开始使用 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

4

2 回答 2

0

我通过创建 XJC 插件解决了我的问题。看过以下内容后并不难(因为我熟悉使用 com.sun.codemodel.* 类生成代码):

于 2013-09-15T22:13:23.857 回答
0

我自己没有测试它,但似乎您可以实现 org.apache.cxf.tools.wsdlto.core.DefaultValueProvider接口并使用“defaultValues”参数将其传递给 wsdl2java 命令行。

那里查看“defaultValues”的语法

让我知道它是否有效。

编辑:正如 dcsohl 所说,您的要求似乎很奇怪,也许我们错过了一些东西,所以请多解释一下上下文

于 2013-09-12T15:49:00.547 回答