2011-08-04 8 views
1

WebSphere 6.1 NDのMDBでXML.loadString(...)を呼び出しています。私はthis questionに記載されているのと同様のjava.lang.VerifyErrorを得ています。WebSphereのXML.loadStringが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で再試行しましたが、問題は解決しません。今すぐアンインストールする/サーバーをオフにする/一時ファイルを削除する/再インストール/サーバーを再起動します。私に運が欲しい。

+0

これはバグかもしれません。 Scala 2.8.1で試してみます。そこで動作する場合は、[JIRA](https://issues.scala-lang.org/secure/Dashboard.jspa)に問題をオープンしてください。 –

+0

2.8.1でも問題は発生します。 – Synesso

答えて

0

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

編集:実際には、WAS 6のIBM JREにはバグがあります。スカラーを使用しているときにエラーが再現されていることからもわかります。

1

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

MDBに問題がある場合は、アプリケーションクラスローダーを「親の最後」に設定する必要があります。そのため、おそらく、アプリケーションとサーバー関連の共有ライブラリまたは他のサーバークラスパス。関連するすべてのスカラクラスをJARに組み込む必要があります。そうしないと、 "parent last"の使用をやめる必要があります。

関連する問題