1

XML.loadString(...)WebSphere 6.1 ND で MDB を呼び出しています。私は、この質問java.lang.VerifyErrorで説明されているものと同様に取得しています。

スタックトレースは次のとおりです。

java.lang.VerifyError: class loading constraint violated (class: scala/collection/mutable/StringBuilder method: toSeq()Lscala/collection/Seq;) at pc: 0
    at java.lang.J9VMInternals.verifyImpl(Native Method)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:120)
    at scala.xml.parsing.FactoryAdapter.<init>(FactoryAdapter.scala:40)
    at scala.xml.parsing.NoBindingFactoryAdapter.<init>(NoBindingFactoryAdapter.scala:18)
    at scala.xml.factory.XMLLoader$class.adapter(XMLLoader.scala:24)
    at scala.xml.XML$.adapter(XML.scala:40)
    at scala.xml.factory.XMLLoader$class.loadXML(XMLLoader.scala:37)
    at scala.xml.XML$.loadXML(XML.scala:40)
    at scala.xml.factory.XMLLoader$class.loadString(XMLLoader.scala:59)
    at scala.xml.XML$.loadString(XML.scala:40)
    at my code

私も使用すると発生しConstructingParserます:

java.lang.VerifyError: class loading constraint violated (class: scala/collection/mutable/StringBuilder method: toSeq()Lscala/collection/Seq;) at pc: 0
    at java.lang.J9VMInternals.verifyImpl(Native Method)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:59)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:120)
    at scala.xml.parsing.MarkupParser$class.$init$(MarkupParser.scala:102)
    at scala.xml.parsing.ConstructingParser.<init>(ConstructingParser.scala:47)
    at scala.xml.parsing.ConstructingParser$.fromSource(ConstructingParser.scala:22)

私はScala v2.9.0.1を使用しています

このクラス リンケージの問題をどのように診断できますか?

編集#1

よく考えてみると、無関係な変更の後に問題が発生したことに気付きました。直感で、WAS からアプリケーションを完全にアンインストールしてから、再インストールしました。問題はなくなりました。この問題は、次のアプリケーションの更新(つまり、上書き) 後に再発しました。

さらに数時間後、Scala XML 解析に関係のない他の変更を行った後、アンインストール/再インストールするのを忘れ、代わりに更新を行いました。問題は再発しませんでした。問題を再現できなくなりました。

編集#2

問題が再発し、アンインストール/再インストールだけでは解決できません。Scala 2.8.1 で再試行しましたが、問題は解決しません。ここで、サーバーのアンインストール/電源オフ/一時ファイルの削除/再インストール/サーバーの再起動を試みます。幸運を祈ります。

4

2 に答える 2

1

まあ、私はその答えで与えたよりも多くのアドバイスを与えることはできません:-)、しかしあなたの場合、scalaクラスが問題のようです. スカラクラスはどこにありますか? よくわからない場合は、JVM 詳細クラス ローディング トレースを有効にすることをお勧めします。そうすれば、少なくとも JAR の場所がわかります。

MDB に問題がある場合は、アプリケーション クラス ローダーを「親が最後」になるように設定する必要があります。そのため、アプリケーションとサーバー関連の共有ライブラリまたは他のサーバー クラス パスの両方に scala クラスがあると考えられます。関連するすべての scala クラスを JAR に含めるか、「parent last」の使用をやめる必要があります。

于 2011-08-04T13:04:26.953 に答える
0

これは、WebSphere 6 ND のバグでした。フィックスパック 37 を適用することで修正されました。

編集: 実際、WAS 6 の IBM JRE のバグであり、scalac を使用するとエラーが再現されるという事実からも明らかです。

于 2011-08-05T01:12:26.597 に答える