java - 为什么axis2 1.6.2 java2wdsl.sh忽略复杂类型的类成员

标签 java jaxb wsdl apache-axis

假设我有一个 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/

相关文章:

java - 当集合为空时省略 JAXB 中的包装器标记

java - 从字符串创建 JAXBElement<Book>

java - Maven cxf-codegen-plugin 并在 wsdl 中导入

wsdl - 来自 WSDL 的 Spring-ws 客户端

java - 在 JAXB 中编码时如何避免根元素注释?

wcf - Windows Service中的WCF主机:无法获取wsdl

java - 以字符串形式获取放心的请求规范

java - Android 深层链接未重定向到 Play 商店

java - Spring JDBC 模板 - Oracle DB 函数返回 null

java - 为什么需要等效方法重载?