com.thoughtworks.xstream.mapper.CannotResolveClassException

2023-11-27

这是我第一次尝试 XStream。 但是当我尝试解析我的 xml 文件时,我得到了这个异常:

Exception in thread "main" com.thoughtworks.xstream.mapper.CannotResolveClassException: root
    at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:79)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
    at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
    at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:133)
    at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1157)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1141)
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1012)
    at com.mmm.transport.se.xmleditor.xml.TestXML.test(TestXML.java:20)
    at com.mmm.transport.se.xmleditor.domain.Main.main(Main.java:13)

所以我们可以看到错误出现在我的 testXML 类的第 20 行。它看起来像这样:

public class TestXML {

    public void test() throws FileNotFoundException {

        FileReader reader = new FileReader("xmlFiles/CoreDatamodel.xml");

        XStream xstream = new XStream();
        xstream.processAnnotations(Properties.class);
        xstream.processAnnotations(Parameters.class);
        xstream.processAnnotations(ObjType.class);
        xstream.processAnnotations(Type.class);
        Type data = (Type) xstream.fromXML(reader);

        System.out.println(data);
    }

}

第 20 行是这一行:xstream.processAnnotations(Parameters.class);

@XStreamAlias("param")
public class Parameters {

    @XStreamAlias("DATATYPE")
    private String datatype;
    @XStreamAlias("DESCRIPTION")
    private String description;
    @XStreamAlias("MIN_NO")
    private String min_no;
    @XStreamAlias("MAX_NO")
    private String max_no;
    @XStreamAlias("ORDER1")
    private String order1;
    @XStreamAlias("NESTED")
    private String nested;
    @XStreamAlias("DEFAULT1")
    private String default1;
    @XStreamAlias("FORMAT")
    private String format;
    @XStreamAlias("PARAMETER")
    private String parameter;

    public Parameters(String datatype, String description, String min_no,
            String max_no, String order1, String nested, String default1,
            String format, String parameter) {
        super();

        setDatatype(datatype);
        setDescription(description);
        setMin_no(min_no);
        setMax_no(max_no);
        setOrder1(order1);
        setNested(nested);
        setDefault1(default1);
        setFormat(format);
        setParameter(parameter);

    } //Getters and setters..

xml 看起来像这样:

- <root>
- <info>
  <CORE_NAME>DataModel_Core</CORE_NAME> 
  <CORE_VERSION>..</CORE_VERSION> 
  <CORE_PRODUCT_ID>...</CORE_PRODUCT_ID> 
  <ADAPTATION_NAME /> 
  <ADAPTATION_VERSION /> 
  <ADAPTATION_PRODUCT_ID /> 
  </info>
- <type>
  <OBJECT_TYPE>data</OBJECT_TYPE> 
- <prop>
  <DESCRIPTION>Site parameters</DESCRIPTION> 
  <PARENT>NULL</PARENT> 
  <VIRTUAL>0</VIRTUAL> 
  <VISIBLE>1</VISIBLE> 
  <PICTURE>NULL</PICTURE> 
  <HELP>10008</HELP> 
  <MIN_NO>1</MIN_NO> 
  <MAX_NO>1</MAX_NO> 
  <NAME_FORMAT>NULL</NAME_FORMAT> 
  </prop>
- <param>
  <PARAMETER>nidRbc</PARAMETER> 
  <DATA_TYPE>INTEGER</DATA_TYPE> 
  <DESCRIPTION>RBC identity</DESCRIPTION> 
  <MIN_NO>1</MIN_NO> 
  <MAX_NO>1</MAX_NO> 
  <ORDER1>1</ORDER1> 
  <NESTED>0</NESTED> 
  <DEFAULT1>NULL</DEFAULT1> 
  <FORMAT>0:16382</FORMAT> 
  </param>
</type>

其他涉及的类如下所示:

public class Type {

    @XStreamImplicit(itemFieldName = "type")
    private List types = new ArrayList();

}

public class ObjType {

    @XStreamAlias("OBJECT_TYPE")
    private String objectType;

    public ObjType() {

    } // Getters and setters

@XStreamAlias("prop")
public class Properties {

    @XStreamAlias("DESCRIPTION")
    private String description;
    @XStreamAlias("PARENT")
    private String parent;
    @XStreamAlias("VIRTUAL")
    private String virtual;
    @XStreamAlias("VISIBLE")
    private String visible;
    @XStreamAlias("PICTURE")
    private String picture;
    @XStreamAlias("HELP")
    private String help;
    @XStreamAlias("MIN_NO")
    private String min_no;
    @XStreamAlias("MAX_NO")
    private String max_no;
    @XStreamAlias("NAME_FORMAT")
    private String name_format;
    public static Properties instance = null;

    public static Properties getInstance() {

        if (instance == null) {

            instance = new Properties();

        }

        return instance;
    }

    public Properties() {

    } // Getters and Setters.

这个错误的原因是什么?


出现此异常的原因是因为您没有 xml 元素根和信息的表示形式。

因此,当 XStream 读取该 xml 文件时,它会搜索与根元素匹配的类。如果您没有定义别名/映射,它将尝试将标签名称作为类名称。

所以,而不是:

public class Type {
    @XStreamImplicit(itemFieldName = "type")
    private List types = new ArrayList();
}

使用类似的东西:

@XStreamAlias("root")
public class Type {
    private Info info;

    @XStreamImplicit(itemFieldName = "type")
    private List types = new ArrayList();
}

private class Info {
    // ... define the attributes for the info element here.
}

为了供您参考,我已经格式化了您的 xml 以使其更具可读性:

<root>
    <info>
        <CORE_NAME>DataModel_Core</CORE_NAME> 
        <CORE_VERSION>..</CORE_VERSION> 
        <CORE_PRODUCT_ID>...</CORE_PRODUCT_ID> 
        <ADAPTATION_NAME /> 
        <ADAPTATION_VERSION /> 
        <ADAPTATION_PRODUCT_ID /> 
    </info>
    <type>
        <OBJECT_TYPE>data</OBJECT_TYPE>
        <prop>
            <DESCRIPTION>Site parameters</DESCRIPTION> 
            <PARENT>NULL</PARENT> 
            <VIRTUAL>0</VIRTUAL> 
            <VISIBLE>1</VISIBLE> 
            <PICTURE>NULL</PICTURE> 
            <HELP>10008</HELP> 
            <MIN_NO>1</MIN_NO> 
            <MAX_NO>1</MAX_NO> 
            <NAME_FORMAT>NULL</NAME_FORMAT> 
        </prop>
        <param>
            <PARAMETER>nidRbc</PARAMETER> 
            <DATA_TYPE>INTEGER</DATA_TYPE> 
            <DESCRIPTION>RBC identity</DESCRIPTION> 
            <MIN_NO>1</MIN_NO> 
            <MAX_NO>1</MAX_NO> 
            <ORDER1>1</ORDER1> 
            <NESTED>0</NESTED> 
            <DEFAULT1>NULL</DEFAULT1> 
            <FORMAT>0:16382</FORMAT> 
        </param>
    </type>
</root>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

com.thoughtworks.xstream.mapper.CannotResolveClassException 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供

随机推荐

  • 如何在IIS7.5中启用ASP经典

    我在 Windows 7 中运行 IIS 7 5 并且已经进入 打开或关闭 Windows 功能 并在 Internet 信息服务 万维网服务 应用程序开发功能 中启用了 ASP 完成此操作后 我开始收到 HTTP 404 错误 由于扩展名
  • 替换日期时间日期中的年份

    我有一个带有一列的表 dateDT 格式为日期时间和年份的变量输入 selYear 在我的 Select 中 格式为 int 如何使用变量输入替换表中日期中的年份并以日期时间格式返回结果 在选择中 我已尝试以下操作 但这返回错误的日期 年份
  • 使用下划线 groupby 按颜色对一组汽车进行分组

    我有一系列的汽车 car make nissan model sunny colour red 我将如何使用 underscore js 按颜色对数组进行分组 我尝试了一些组合 但我不太确定如何指定我的迭代器条件 var carsGroup
  • OSError:无法打开共享对象文件:即使文件位于文件夹中,也没有此类文件或目录

    我已经为此奋斗了很长一段时间了 我正在尝试安装 Yaafe 来提取音频特征 我按照这里的说明操作 https github com Yaafe Yaafe 一切都安装得很好 但是当我尝试运行测试文件 frames py 时 出现以下错误 F
  • C - 在内存被释放()后访问数据?

    我读了很多关于标准 C 中的 malloc 和 free 的内容 据我了解 您malloc 只为了一次记忆 然后你free 同样的记忆只有一次 这可能是不好的做法 但我明白 在你之后malloc 内存 您可以定义多个指向它的指针 而一旦你f
  • 酸洗 scipy interp1d 样条

    我想知道有没有简单的腌制方法interp1dscipy 中的对象 这种天真的方法似乎不起作用 import pickle import numpy as np from scipy interpolate import interp1d x
  • OpenMP 和 NUMA 的关系?

    我有一台双路 Xeon E5522 2 26GHZ 机器 禁用超线程 在支持 NUMA 的 Linux 内核 3 0 上运行 ubuntu 服务器 架构布局为每个插槽 4 个物理核心 OpenMP 应用程序在这台机器上运行 我有以下问题 在
  • 如何创建Python卷积核?

    我正在尝试创建一个卷积核 中间值为 1 5 不幸的是 我不断地想出如何做到这一点的想法 我正在尝试创建类似的东西 Array 0 1 0 1 1 5 1 0 1 0 由于 OpenCV 使用 Numpy 来显示图像 因此您可以简单地使用 N
  • 使用 Carrierwave 清理 tmp 目录

    我使用 Carrierwave 进行图像上传 在我的表单中 我添加了一个用于缓存的隐藏字段 如文档中所述 form for user html multipart true do f p f label image your image f
  • python的csv阅读器可以保留引号吗?

    我想使用 python CSV 阅读器 但我想保留引号 这就是我想要的 gt gt gt s simple split test gt gt gt reader csv reader s delimiter skipinitialspace
  • 通过javascript获取浏览器书签[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我们想为我们的客户提供在线书签服务 因此 最好还提供一个将本地书签存储到我们的在线工具中的功能 这不应该自动完成 用户应该确认此操作 仅在有人认为我
  • R 是否有像 python 一样的startswith 或endswith 函数? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 gt startsWith abc a 1 TRUE gt startsWith abc c 1 FALSE gt endsWith abc a 1 FALSE gt endsWith
  • 使用 System.Net.Mail 通过 smtp 服务器加速发送多封电子邮件

    我是 C 的新手 但我从 VB Net 学到了很多关于 Windows Net 编程的知识 我刚刚制作了一个简单的 SMTP 客户端 它可以从程序发送电子邮件 它是一个控制台应用程序 一次只能通过服务器发送一封电子邮件 这非常慢 我需要通过
  • 删除列表框上的滚动条

    我在 vba 中使用 userForm 并且有一个列表框 我想删除霍罗兹 从底部滚动条 有没有办法做到这一点 我在属性框中没有看到任何选项 当您将列表框的列宽格式属性设置为宽 然后根据数据调整控件大小时 就会出现这种情况 它将显示滚动条 要
  • 我可以声明 Type 的变量而不在编译时指定 T 吗?

    如何动态加载 MyContent 类 我有 1interface
  • 如何查看表的日志数据绿屏DB2

    如何查看指定表中的日志数据 我想查看某个表在指定时间范围内发生了什么情况 我使用以下命令获取了表上的信息 DSPFD 文件 P6PRDBDB00 P6OIDPF 获得了日志名称和库 但我不知道如何查看对象 P6OIDPF I did go
  • hive 中的映射类型变量

    我在尝试在配置单元中定义地图类型时遇到问题 根据蜂巢手册肯定有地图类型 不幸的是没有任何关于如何使用它的示例 假设 我有一个包含以下列的表 用户 Name Ph CategoryName 此 CategoryName 列具有一组特定的值 现
  • 为什么在 STL 映射中用作值的类需要...中的默认构造函数?

    下面是用作映射中的值的类 class Book int m nId public Book lt Why is this required Book int id m nId id main 内部 map lt int Book gt ma
  • Android 风格传承

    事情是这样的 在我的 Styles xml 中 我有一个通用样式 并且一个样式继承了另一个样式 如下所示
  • com.thoughtworks.xstream.mapper.CannotResolveClassException

    这是我第一次尝试 XStream 但是当我尝试解析我的 xml 文件时 我得到了这个异常 Exception in thread main com thoughtworks xstream mapper CannotResolveClass