Проблема OC4J: global-web-application.xml работает, orion-web.xml не работает

Недавно я «решил» довольно распространенную проблему в OC4J, связанную с использованием Xerces вместо встроенного парсера OC4J. Проблема решилась добавлением этой строки в global-web-application.xml:

<web-app-class-loader search-local-classes-first="true"/>

К сожалению, это был слишком громоздкий подход, который мог вызвать проблемы на сервере приложений, поэтому я попытался решить эту проблему, создав следующий файл orion-web.xml в каталоге WEB-INF приложения:

<?xml version="1.0"?>
<orion-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-web-10_0.xsd">
<web-app-class-loader search-local-classes-first="true" include-war-manifest-class-path="true"/>
<web-app/>
</orion-web-app>

К сожалению, оказалось, что использование global-web-application.xml сработало, а использование orion-web.xml — нет.

Версия OC4J — 10.1.3.5.

Кто-нибудь может посоветовать?


person Jason    schedule 21.01.2010    source источник


Ответы (3)


Другой способ — указать время развертывания. Посмотри:

Указание search-local-classes-first во время развертывания

В следующем примере показано, как установить атрибут search-local-classes-first в файле orion-web.xml, сгенерированном для веб-модуля во время развертывания, с помощью Application Server Control.

  1. Выберите Applications>Deploy, чтобы запустить мастер развертывания Application Server Control.
  2. Укажите путь к приложению на первой странице мастера.
  3. Укажите имя приложения и предоставьте любые сопоставления URI контекста на второй странице.
  4. Нажмите «Настроить загрузку классов» на третьей странице мастера («Развертывание: параметры развертывания»).
  5. В разделе «Настройка загрузчиков классов веб-модулей» установите флажок «Сначала искать локальные классы» рядом с именем веб-модуля, содержащего локальный файл JAR для использования.
  6. При необходимости нажмите кнопку «Сохранить план развертывания» и сохраните план для повторного использования.
person Alan    schedule 22.12.2010

Я думаю, что вы могли бы решить это по-другому. Использование свойств и удаление библиотек.

Есть два свойства:

xml.driver.property

xml.driver.impl

Один определяет интерфейс парсера, а другой — реализацию. Вы можете переключать это с одной реализации на другую.

например у нас есть:

xml.driver.property=org.xml.sax.driver

xml.driver.impl=org.apache.xerces.parsers.SAXParser

Поскольку это системные свойства, вы можете загрузить их разными способами. Мы используем специальный сервлет, установленный во всех экземплярах (контейнерах) OC4J, который загружает эти и другие свойства во время выполнения.

«Немного» опоздал, но надеюсь, что это поможет.

person mfcabrera    schedule 12.11.2010

Наконец, я могу запустить JAXB2 (используемый Spring WS 2.1.4) на моем OC4J 10.13 (и 10.13.50). JAXB нуждается в xalan lib.

orion-web.xml

<?xml version="1.0"?>
<!DOCTYPE orion-web-app PUBLIC "-//Evermind//DTD Orion Web Application 2.3//EN"
    "http://xmlns.oracle.com/ias/dtds/orion-web.dtd">

<orion-web-app
    persistence-path=""
    jsp-cache-directory="./persistence"
    jsp-cache-tlds="standard"
    simple-jsp-mapping="false"
    temporary-directory="./temp"
    servlet-webdir="/servlet/"
    >

    <web-app-class-loader search-local-classes-first="true"/>

</orion-web-app>

maven pom.xml

    <!-- JAXB implemetation by EclipseLink MOXy-->
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
        <version>2.5.1</version>
        <scope>compile</scope>
    </dependency>

    <!-- Specific dependencies for OC4J v1013 -->
    <dependency>
        <groupId>xalan</groupId>
        <artifactId>xalan</artifactId>
        <version>2.7.1</version>
        <scope>runtime</scope>
        <exclusions>
            <exclusion>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
person sasynkamil    schedule 26.11.2013