java.lang.LinkegeError при разборе файла ddm DOMParser в Websphere 7
Я использую websphere 7. для развертывания моего приложения. При развертывании необходимо проанализировать файл *.ddm для чтения свойств. Мы используем DOMParser для разбора файла. следующий код То же самое работает отлично, это Tomcat.
InputStream iStream = new BufferedInputStream(new FileInputStream(file));
InputSource iSource = new InputSource(iStream );
DOMParser.parse(iSource);
получить следующее исключение.
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R Caused by: java.lang.LinkageError: loading constraint violation: loader "com/ibm/ws/classloader /CompoundClassLoader@2de92de9" previously initiated loading for a different type with name "org/apache/xml/resolver/helpers/Debug" defined by loader "org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader@602c602c"
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at java.lang.ClassLoader.defineClassImpl(Native Method)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at java.lang.ClassLoader.defineClass(ClassLoader.java:274)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:768)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:687)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:510)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xml.resolver.tools.CatalogResolver.getResolvedEntity(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xml.resolver.tools.CatalogResolver.resolveEntity(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr R at
1 ответ
Проблема решается путем создания общей справочной библиотеки в WAS.
Создать общую библиотеку для управления контентом
Запустите консоль интегрированных решений WebSphere.
Для получения дополнительной информации о консоли см. Документацию по WebSphere.
Разверните Приложения-> Типы приложений и щелкните Приложения предприятия WebSphere.
В окне корпоративных приложений выберите имя приложения управления контентом.
На странице конфигурации щелкните Ссылки общей библиотеки.
На панели ссылок на общую библиотеку выберите приложение Content Management и щелкните ссылку на общие библиотеки.
6 Нажмите Новый.
На странице конфигурации измените имя в поле Имя на jars
В поле Classpath добавьте эти три строки, изменив пути к папке, в которую вы распаковали WAR-файл.
Примечание. Каждый из этих файлов должен быть введен в отдельных строках.
D: \ Temp \ org.eclipse.osgi_3.3.2.R33x_v20080105.jar D: \ Temp \ org.apache.xml.resolver_1.1.jar D: \ Temp \ resource
Установите флажок Загрузка класса.
Нажмите Применить.
Нажмите на ссылку Сохранить, чтобы обновить основную конфигурацию.
На странице ссылок на общую библиотеку выберите развернутое приложение и нажмите "Ссылка на общие библиотеки".
На странице "Отображение общей библиотеки" созданная вами общая библиотека появится в списке "Доступные". Используйте кнопку со стрелкой, чтобы переместить его в выбранный список, и нажмите OK.
На странице ссылок на общую библиотеку выберите модуль DocCenterServer и нажмите "Ссылка на общие библиотеки".
На странице "Отображение общей библиотеки" созданная вами общая библиотека появится в списке "Доступные". С помощью кнопки со стрелкой переместите его в список "Выбранные" и нажмите "ОК".
Нажмите на ссылку Сохранить, чтобы обновить основную конфигурацию.
Перезапустите развернутое приложение, чтобы применить изменения:
В окне "Корпоративное приложение" выберите файл WAR и нажмите "Пуск".
Когда приложение запущено, в столбце "Состояние приложения" появляется зеленая стрелка.