XML.loadString в WebSphere создает java.lang.VerifyError - PullRequest
1 голос
/ 04 августа 2011

Я звоню XML.loadString(...) в MDB в WebSphere 6.1 ND. Я получаю 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, а затем переустановил его. Проблема исчезла. Проблема возникла после следующего обновления (т.е. перезаписать).

Через несколько часов и другие изменения, не связанные с синтаксическим анализом XML Scala, я забыл удалить / переустановить и вместо этого сделал обновление. Проблема не повторилась. Я больше не могу копировать проблему.

Редактировать # 2

Проблема вернулась и не может быть решена только удалением / переустановкой. Перепробовал с Scala 2.8.1, но проблема сохраняется. Теперь попробуем удалить / отключить сервер / удалить временные файлы / переустановить / перезапустить сервер. Пожелай мне удачи.

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Ну, я не могу дать гораздо больше советов, чем я дал в этом ответе :-), но в вашем случае, похоже, что классы scala являются проблемой.Где все у вас есть классы скала?Если вы не уверены, я бы предложил включить трассировку загрузки подробного класса JVM, и тогда вы по крайней мере узнаете расположение JAR-файлов.

Если у MDB возникают проблемы, значит, вы должны установитьЗагрузчик классов приложения должен быть «родительским последним», поэтому, вероятно, у вас есть классы scala как в приложении, так и в общей библиотеке, связанной с сервером, или в другом пути к классам серверов.Вам нужно будет либо включить все соответствующие классы scala в ваш JAR-файл, либо вам нужно прекратить использовать «parent last».

0 голосов
/ 05 августа 2011

Это ошибка в WebSphere 6 ND.Исправлено путем применения пакета Fix Pack 37. Как вы были.

edit: на самом деле, ошибка в IBM JRE WAS 6, о чем свидетельствует тот факт, что ошибка воспроизводится при использовании скаляра с ним.

...