OC4J Проблема: global-web-application.xml работает, orion-web.xml не работает - PullRequest
0 голосов
/ 21 января 2010

Недавно я "решил" довольно распространенную проблему в 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"?><br> <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"><br> <web-app-class-loader search-local-classes-first="true" include-war-manifest-class-path="true"/><br> <web-app/><br> </orion-web-app>

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

Версия OC4J - 10.1.3.5.

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

Ответы [ 3 ]

2 голосов
/ 22 декабря 2010

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

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

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

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

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

Орион-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>
0 голосов
/ 12 ноября 2010

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

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

xml.driver.property

xml.driver.impl

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

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

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

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

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

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

...