Java xmlbeans的运行时异常-can';找不到编译的模式

Java xmlbeans的运行时异常-can';找不到编译的模式,java,xml,xmlbeans,Java,Xml,Xmlbeans,我在执行一些依赖于生成的xmlbeans类的代码时遇到RuntimeException。我不知道这是不是: 我在代码生成或打包过程中丢失了一些东西 缺少运行时依赖项 一条误导性的错误信息,我应该去别处看看 xbean.jar版本在构建和执行环境中是相同的。有人见过这个或者有什么想法吗 谢谢 ...snip... Caused by: java.lang.RuntimeException: Could not instantiate SchemaTypeSystemImpl (java.lan

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

  • 我在代码生成或打包过程中丢失了一些东西
  • 缺少运行时依赖项
  • 一条误导性的错误信息,我应该去别处看看
xbean.jar版本在构建和执行环境中是相同的。有人见过这个或者有什么想法吗

谢谢

...snip... Caused by: java.lang.RuntimeException: Could not instantiate SchemaTypeSystemImpl (java.lang.reflect.InvocationTargetException): is the version of xbean.jar correct? at schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.TypeSystemHolder.loadTypeSystem(Unknown Source) at schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.TypeSystemHolder.(Unknown Source) ... 38 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) ... 40 more Caused by: org.apache.xmlbeans.SchemaTypeLoaderException: XML-BEANS compiled schema: Could not locate compiled schema resource schemaorg_apache_xmlbeans/system/s2B8331230CBD98F4933B0B025B6BF726/index.xsb (schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.index) - code 0 at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl$XsbReader.(SchemaTypeSystemImpl.java:1504) at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.initFromHeader(SchemaTypeSystemImpl.java:260) at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.(SchemaTypeSystemImpl.java:183) ... 44 more ...snip... 剪 原因: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(本机方法) 位于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\u apache\u xmlbeans/system/s2b8331230cbd98f4933b025b6bf726/index.xsb(schemaorg\u apache\u xmlbeans.system.s2b8331230cbd98f4933b025b6bf726.index)-代码0 位于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多 剪
我以前从未使用过图书馆,但我能猜出发生了什么。 有了那个限定词(也就是说,我只是在编造,但已经7个小时了,没有其他人编造任何东西)

说明一个显而易见的事实:某些内容已在某处编译,无法加载。我认为jar文件中没有这个东西;我猜是您的一个资源被编译/缓存到了某个位置

我想可能是:

  • 它是在一个无法从中加载的地方编译的(混乱的classpath/config)
  • 编译的内容和希望加载的内容之间的版本控制是错误的
您是否在编译和加载/运行之间更改了某些内容(例如模式版本?)

是否可以删除已编译的版本并重新编译,然后尝试重新加载

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

为此,您可以尝试

grep“s2B8331230CBD98F4933B0B025B6BF726”`查找`

从某个合适的目录

您是否可以对类/资源执行md5测试,从而在编译和运行时环境中都造成问题?他们匹配吗


希望其中的某些东西能够帮助或引发思考。

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


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

这些类文件是在resources/schemaorg\u apache\u xmlbeans目录中生成的。我看到过xmlbeans行为,生成的ant脚本未能将此目录包含在它创建的jar中(可能是由于一个bug?),请检查它是否已包含在jar中。您可以手动重新jar,或者检查代码生成命令行选项。

John的回答对我来说是一个很好的提示。我使用xmlBeans生成Java类,并在我的项目中手动将源文件从“noNamespace”中复制出来进行修改。不幸的是,我没有意识到“schemaorg_apache_xmlbeans”文件夹中也有生成的类文件,因此没有复制它们。

切换到使用生成的jar文件后,一切都很好。

我使用wsdltojava创建了一些soap代码。我没有注意到它还创建了一个“资源”文件夹,我没有将它复制到我的项目中。