11

在执行一些依赖于生成的 xmlbeans 类的代码时,我得到了一个 RuntimeException。我不知道这是否是:

  • 我在代码生成或打包过程中遗漏了一些东西
  • 缺少运行时依赖项
  • 一个误导性的错误信息,我应该在别处寻找。

xbean.jar 版本在构建和执行环境中是一样的。有人以前见过这个或有任何想法吗?

谢谢。

……剪……
原因:java.lang.RuntimeException:无法实例化 SchemaTypeSystemImpl (java.lang.reflect.InvocationTargetException):xbean.jar 的版本是否正确?
    在 schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.TypeSystemHolder.loadTypeSystem(未知来源)
    在 schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.TypeSystemHolder.(未知来源)
    ... 38 更多
引起:java.lang.reflect.InvocationTargetException
    在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    在 java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    ... 40 更多
原因:org.apache.xmlbeans.SchemaTypeLoaderException:XML-BEANS 编译模式:找不到编译模式资源 schemaorg_apache_xmlbeans/system/s2B8331230CBD98F4933B0B025B6BF726/index.xsb(schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.index)-
    在 org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl$XsbReader.(SchemaTypeSystemImpl.java:1504)
    在 org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.initFromHeader(SchemaTypeSystemImpl.java:260)
    在 org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.(SchemaTypeSystemImpl.java:183)
    ... 44 更多
……剪……
4

4 回答 4

1

约翰的回答对我来说是一个很好的暗示。我使用 xmlBeans 生成了 Java 类,并在我的项目中手动将源文件从“noNamespace”中复制出来以修改它们。不幸的是,我没有认识到“schemaorg_apache_xmlbeans”文件夹中也有生成的类文件并且没有复制它们。
切换到使用生成的 jar 文件后,一切对我来说都很好。

于 2012-01-31T17:02:52.940 回答
0

这些类文件在 resources/schemaorg_apache_xmlbeans 目录中生成。我已经看到 xmlbeans 行为,其中生成的 ant 脚本未能将此目录包含在它创建的 jar 中(可能是由于错误?)检查它是否已包含在 jar 中。您可以手动重新 jar,或检查您的代码生成命令行选项。

于 2010-07-09T09:08:56.170 回答
0

我以前从未使用过该库,但我可以猜测发生了什么。有了那个限定符(即,我只是在编造这个,但已经 7 个小时了,没有其他人编造任何东西)......

显而易见:某些东西已经在某处编译并且无法加载。我不认为这个东西在 jar 文件中;我猜这是您的资源之一,已被编译/缓存到某个位置。

我猜要么:

  • 它是在一个无法加载的地方编译的(搞砸了类路径/配置)
  • 编译的内容和要加载的内容之间的版本控制是错误的

您是否在编译和加载/运行之间更改了某些内容(例如架构版本?)?

您可以删除已编译的版本并重新编译然后尝试重新加载吗?

你能在文件系统中找到编译后的版本吗?

为此,您可以尝试

grep“s2B8331230CBD98F4933B0B025B6BF726”`查找。`

从一些合适的目录。

你能在类/资源上做一个 md5 导致编译和运行环境中的问题吗?他们匹配吗?

希望里面的东西能帮助或引发一个想法。

于 2009-07-25T08:20:28.030 回答
0

当有一个脚本(ant、maven、...)可以处理 XMLBeans 编译并且使用另一种机制来编译和运行其余代码时,我经常看到这个问题。有时,一个片段会删除 XMLBeans 在堆栈跟踪中查找的生成文件,但会留下生成的 XMLBeans Java 文件,因此一切都会编译并看起来很好。

在使用选项输出源文件而不是类文件时,我也看到了这一点。非 Java 源文件仅直接生成到 XMLBeans 生成的类文件夹或 jar 文件中。

于 2009-07-28T01:59:52.650 回答