Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > проблема с маршалингом XMLBeans


Автор: redrick 9.10.2008, 15:06
имеется веб-приложение под Weblogic 10 с использованием Apache XMLBeans

сгенерил по XSD бин CreatePatientRequestDocument.
создаю его экземпляр через сгенеренную же фабрику:

Код

CreatePatientRequestDocument createPatientRequestDocument = CreatePatientRequestDocument.Factory.newInstance();


этот метод в фабрике выглядит так:

Код

public static final class Factory
    {
        public static com.aligntech.schemas.eai.CreatePatientRequestDocument newInstance() {
          return (com.aligntech.schemas.eai.CreatePatientRequestDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }


получаю стрейс:

Код

java.lang.NoClassDefFoundError: org/apache/xmlbeans/impl/store/Locale
        at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.newInstance(SchemaTypeLoaderBase.java:198)
        at com.aligntech.schemas.eai.CreatePatientRequestDocument$Factory.newInstance(CreatePatientRequestDocument.java:45)
        at com.aligntech.canine.model.service.eai.xml.CreatePatientXmlHelper.getXml(CreatePatientXmlHelper.java:153)


в дебагере смотрел на результат org.apache.xmlbeans.XmlBeans.getContextTypeLoader() - SchemaTypeLoaderImpl
у него есть поле _classloader - это инстанс weblogic.utils.classloaders.ChangeAwareClassLoader
посмотрел в нем CodeGenClassFinder - у него есть интересное поле sources - там перечислены разные пакеты из xbean.jar, но искомого  org/apache/xmlbeans/impl/store нет

Ну и вот собственно вопрос:
почему класслоадер не находит класс org/apache/xmlbeans/impl/store/Locale, хотя другие классы и методы из xbean.jar работают нормально?

Небольшая поправка: эксепшен сыпится при первой же попытки воспользоваться XML бинами, т.е. при первой же попытки создать экземпляр. Так что по каким-то причинам мой сервер просто не видит xbean.jar

Автор: redrick 9.10.2008, 16:49
вобщем, я понимаю, что разобраться с чехордой моих класслоадеров по этому описанию непросто.
Так или иначе проблема решилась, но будет интересно послушать ваши соображения по поводу борьбы с такими проблемами ибо встречаюсь с ними невпервой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)