2010-01-21 2 views
0

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

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

К сожалению, это было слишком много большой молот подхода, который может вызвать проблемы на сервере приложений, поэтому я попытался чтобы решить ее с помощью создания следующего файла Ориона-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>

к сожалению, получается, что с использованием глобальной-веб-application.xml работал, используя Ориона -web.xml не

OC4J версия 10.1.3.5.

Может ли кто-нибудь посоветовать?

ответ

2

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

Указания поиска нелокальных-классы-первых во время развертывания

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

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

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

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

xml.driver.property

xml.driver.impl

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

, например, мы имеем:

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

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

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

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

0

Наконец-то я пропустил 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>