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(ネイティブメソッド)
    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 コンパイル済みスキーマ: コンパイル済みスキーマ リソースが見つかりません
    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ディレクトリに生成されます。生成されたantスクリプトが作成するjarにこのディレクトリを含めることができなかったxmlbeansの動作を確認しました(おそらくバグが原因ですか?)jarに含まれていることを確認してください。手動で再jarするか、コード生成コマンドラインオプションを確認できます。

于 2010-07-09T09:08:56.170 に答える
0

私はこれまでライブラリを使用したことがありませんが、何が起こっているのか推測できます。その予選で(つまり、私はこれをでっち上げているだけですが、7時間経ちましたが、誰も何も作り上げていません)...

明白なことを述べます。何かがどこかでコンパイルされており、ロードできません。これはjarファイルにあるとは思いません。ある場所にコンパイル/キャッシュされたリソースの1つであると思います。

私はどちらかを推測します:

  • ロードできない場所でコンパイルされます(めちゃくちゃなクラスパス/構成)
  • コンパイルされたものとロードしたいもののバージョン管理が間違っています

コンパイルとロード/実行の間に何か (スキーマのバージョンなど) を変更しましたか?

コンパイル済みのバージョンを削除して再コンパイルし、リロードしてみてください。

コンパイルされたバージョンをファイル システムで見つけることができますか?

これを行うには、試してみてください

grep "s2B8331230CBD98F4933B0B025B6BF726" `find .`

適切なディレクトリから。

コンパイル環境とランタイム環境の両方で問題を引き起こしているクラス/リソースで md5 を実行できますか? それらは一致しますか?

そこにある何かが助けたり、考えを引き起こしたりすることを願っています。

于 2009-07-25T08:20:28.030 に答える
0

この問題は、XMLBeans のコンパイルを処理するスクリプト (ant、maven など) があり、残りのコードのコンパイルと実行に別のメカニズムが使用されている場合によく見られます。場合によっては、XMLBeans がスタック トレースで探している生成済みファイルが削除されますが、生成済み XMLBeans Java ファイルはそのまま残されるため、すべてがコンパイルされて正常に表示されます。

オプションを使用してソースファイルを出力するときにもこれを見ましたが、クラスファイルは出力しませんでした。Java 以外のソース ファイルは、XMLBeans によって生成されたクラス フォルダまたは jar ファイルに直接生成されるだけです。

于 2009-07-28T01:59:52.650 に答える