OC4J问题:global-web-application.xml Works,orion-web.xml没有

时间:2010-01-21 13:49:21

标签: oc4j

我最近“解决”了OC4J中关于使用Xerces而不是OC4J的内置解析器的一个常见问题。通过将此行添加到global-web-application.xml来解决该问题:

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

不幸的是,这可能会导致应用服务器出现问题,因此我尝试通过在应用的WEB-INF目录中创建以下orion-web.xml文件来解决它:

<?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。

有人可以提供建议吗?

3 个答案:

答案 0 :(得分:2)

另一种方法是在部署时指定。看看:

首先在部署时指定search-local-classes -

以下示例说明如何使用Application Server Control在部署时为Web模块生成的orion-web.xml文件中设置search-local-classes-first属性。

  1. 选择应用程序&gt;部署以启动Application Server Control部署向导。
  2. 在向导的第一页中提供应用程序的路径。
  3. 指定应用程序名称并在第二页中提供任何上下文URI映射。
  4. 在向导的第三页(部署:部署设置)中单击“配置类加载”。
  5. 在“配置Web模块类加载器”下,选中“包含要使用的本地JAR文件的Web模块名称旁边的首先搜索本地类”复选框。
  6. (可选)单击“保存部署计划”按钮,然后保存计划以供重复使用。

答案 1 :(得分:0)

我认为你可以用不同的方式解决这个问题。使用属性和删除库。

有两个属性:

<强> xml.driver.property

<强> xml.driver.impl

一个定义解析器接口,另一个定义实现。您可以从一个实现切换到另一个实现。

例如我们有:

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

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

由于这是系统属性,您可以通过多种不同方式加载它。我们使用安装在所有OC4J实例(容器)中的特殊servlet,在运行时加载其他属性。

一点点“迟到”,但希望有所帮助。

答案 2 :(得分:0)

最后,我在我的OC4J 10.13(和10.13.50)上运行JAXB2(由Spring WS 2.1.4使用)。 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>