You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中JAXB反序列化报错:缺少ObjectFactory.class或jaxb.index

JAXB反序列化报错:找不到ObjectFactory.class或jaxb.index的解决办法
  • 检查编译与类路径
    你用xjc生成的ObjectFactory.java、package-info.java等源文件必须被正确编译成.class文件,而且这些.class文件得在项目的类路径里。Kotlin项目里,编译后的class文件默认在build/classes/java/main(Gradle)或target/classes(Maven)目录,要确认org/inek/xml/schema/standortverzeichnis这个包路径下,不仅有Java源文件,还要有对应的.class文件。另外要确保IDE或构建工具把这些Java文件纳入了编译范围,别只编译Kotlin文件。

  • 换个JAXBContext初始化方式
    别用包名初始化,直接指定具体类更靠谱,能绕开包扫描的问题:

    val jaxbContext = JAXBContext.newInstance(Standortverzeichnis::class.java, ObjectFactory::class.java)
    val unmarshaller = jaxbContext.createUnmarshaller()
    
  • 补全jaxb.index(如果坚持用包名)
    要是非得用包名初始化JAXBContext,就得在org.inek.xml.schema.standortverzeichnis包下建一个jaxb.index文件,把该包下所有JAXB映射类的类名逐行写进去,比如:

    Standortverzeichnis
    // 其他需要的映射类名
    

    同时得保证编译后的包目录里确实有ObjectFactory.class文件。

  • 检查构建工具配置
    用Gradle的话,得在build.gradle.kts里加上Java编译支持,毕竟xjc生成的是Java文件:

    plugins {
        kotlin("jvm") version "你的Kotlin版本号"
        java
    }
    

    另外要把生成的Java源文件放在src/main/java目录,或者通过sourceSets配置把生成目录加到源路径里,这样构建工具才会自动编译这些文件。

内容的提问来源于stack exchange,提问作者Pferdesalbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:07:11