gpt4 book ai didi

java - JAX-RPC Web 服务中的多态性

转载 作者:搜寻专家 更新时间:2023-11-01 03:30:40 26 4
gpt4 key购买 nike

我有一个 JAX-RPC (Java) 网络服务需要返回一个复杂的多态值。更具体地说,类结构是这样的:

abstract class Child {
}

class Question extends Child {
private String name;
// other fields, getters, and setters
}

class Section extends Child {
private String label;
private Child[] children;
// getters and setters
}

class Quiz {
private Child[] elements;
// getter and setter
}

我的 web 服务有一个返回测验的方法,它当然可能包含问题和部分,可能包含问题和其他部分,等等。但是,当我生成 WSDL 时,只有 Child 和 Quiz 进入。当我调用 Web 服务时,我得到一个 Quiz 元素,其中包含正确数量的子元素,但它们都是 Child 元素,而且它们都是空的.

除了将 XML 作为字符串返回之外,是否有更好的方法来完成这项工作?

在任何人问之前,由于我无法控制的情况,我无法使用 JAX-WS。

最佳答案

我不认为 JAX-RPC 以这种方式支持多态性。我有一个类似的问题,并且不得不通过创建一个只有两个成员的类来解决这个问题——一个用于可能返回的两个类中的每一个——并且只根据我想要返回的类型填充一个。所以在你的情况下:

class Child 
{
private Section section;
private Question question;

// Constructor, etc...
}

class Question
{
private String name;
// other fields, getters, and setters
}

class Section
{
private String label;
private Child[] children;
// getters and setters
}

class Quiz
{
private Child[] elements;
// getter and setter
}

我知道,这需要客户端检查填充了哪个子成员,而且非常丑陋。

关于java - JAX-RPC Web 服务中的多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/247442/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com