假设我有一个 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 文件中?
最佳答案
使这项工作有效的必要(但可能不是充分)条件是将 ClassB 声明为静态。
关于java - 为什么axis2 1.6.2 java2wdsl.sh忽略复杂类型的类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12285474/