小编M F*_*M F的帖子

javax.xml.bind.UnmarshalException,无法创建类的实例

我有以下情况:

我们的应用程序中使用了逻辑表达式的树结构,并由四类层次结构定义:

Node是一个抽象的超类
OrNode是代表 OR 的 Node 的子类
AndNode是代表 AND 的 Node的子类
Leaf是代表持有一些数据的叶节点的 Node 的子类

现在应该将树结构转移到 Web 服务,该服务将对树进行一些操作(例如,通过收集一些其他信息来评估结果)

该 WS-Operation 的签名可能如下所示:

public TheResult evaluateTree(Node tree);
Run Code Online (Sandbox Code Playgroud)

我们正在使用 JAX-WS 并使用 wsimport 生成 Web 服务类。首先,没有为 OrNode、AndNode 和 Leaf 生成类。所以,我们手动添加了它们。我们将客户端使用的类转换为 wsimport 创建的生成类。接下来,我们要使用转换后的树作为参数调用 Web 服务操作。但是这里发生了一个异常,比如:

javax.xml.ws.soap.SOAPFaultException: javax.xml.bind.UnmarshalException - with linked exception: [javax.xml.bind.UnmarshalException: Unable to create an instance of InterfaceEntities.Node - with linked exception: [java.lang.InstantiationException]]
Run Code Online (Sandbox Code Playgroud)

以下是我们添加的 Wrapper 类和生成的类:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "OrNode")
public class OrNode
    extends Node
{


}

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = …
Run Code Online (Sandbox Code Playgroud)

web-services jax-ws jaxb

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

jax-ws ×1

jaxb ×1

web-services ×1