[英]RuntimeException from xmlbeans - can't find compiled schema
我在執行一些依賴於生成的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...
約翰的答案對我來說是一個很好的暗示。 我使用xmlBeans生成Java類,並在我的項目中手動將源文件復制到“noNamespace”之外進行修改。 遺憾的是,我沒有意識到“schemaorg_apache_xmlbeans”文件夾中也生成了類文件,並且沒有復制它們。
切換到生成的jar文件的使用后,一切正常。
我之前從未使用過該庫,但我可以猜測發生了什么。 有了這個資格賽(也就是說,我只是做了這個,但是已經7個小時了,沒有其他人做過任何事情)......
陳述顯而易見:某些東西已被編譯到某處並且無法加載。 我不認為這個東西在jar文件中; 我猜這是你的資源之一被編譯/緩存到某個位置。
我猜也是:
您是否在編譯和加載/運行之間更改了某些內容(例如架構版本?)?
你可以刪除已編譯的版本並重新編譯然后嘗試重新加載嗎?
你能在文件系統中找到編譯后的版本嗎?
為此,您可以嘗試
grep“s2B8331230CBD98F4933B0B025B6BF726”`find .`
從一些合適的目錄。
你能在類/資源上做一個md5導致編譯和運行時環境出現問題嗎? 他們匹配嗎?
希望那里的某些東西可以幫助或觸發思想。
當有一個腳本(ant,maven,...)處理XMLBeans編譯並且另一個機制用於編譯和運行其余代碼時,我經常看到這個問題。 有時,一個部分將刪除XMLBeans在堆棧跟蹤中查找的生成文件,但是將保留生成的XMLBeans Java文件,以便所有內容都可以編譯並且看起來很好。
我在使用選項輸出源文件時也看到了這一點,但不是類文件。 非Java源文件僅直接生成到XMLBeans生成的類文件夾或jar文件中。
這些類文件在resources / schemaorg_apache_xmlbeans目錄中生成。 我已經看到了xmlbeans行為,其中生成的ant腳本未能在它創建的jar中包含此目錄(可能是由於一個錯誤?)檢查它是否已包含在jar中。 您可以手動重新jar,或檢查代碼生成命令行選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.