0

假设我有一个 ClassA,它包含一些 String 类型的成员和 ClassB 数组的 1 个成员,而 ClassB 数组又只包含一个 String 成员。像这样的东西:

public class ClassB{

    private String string1;
    public ClassB(){
        string1 = "value1";
    }
}

public class ClassA{

    private String string1;
    private String string2;
    private ClassB[] classB = null;

    public ClassA(){
        string1 = "value1";
        string2 = "value2";
        classB = new ClassB[2];
        classB[0] = new ClassB();
        classB[1] = new ClassB();
    }
}

现在我在端点类中定义了一个成员函数,如下所示:

//...
public ClassA getClassA(){
    return new ClassA();
}
//...

这段代码显然是无用的和不完整的,甚至可能是错误的,因为我是从脑海中写出来的,但它证明了我的观点。

当我在这个类(或类似结构)上运行 java2wsdl.sh 时,我得到一个 .wsdl 文件,但数组 ClassB[] 被忽略。我知道axis2默认使用JAXB序列化,我尝试使用注释控制输出但无济于事。

如何更改行为以便 ClassB[] 包含在 .wsdl 文件中?

4

1 回答 1

1

完成这项工作的一个必要(但可能不是充分)条件是将 ClassB 声明为静态。

于 2012-09-06T08:59:15.890 回答