【问题标题】:How to replace EclipseLink 2.3.2 with EclipseLink 2.5 in WebLogic Server 12c如何在 WebLogic Server 12c 中将 EclipseLink 2.3.2 替换为 EclipseLink 2.5
【发布时间】:2013-06-29 14:18:57
【问题描述】:

我目前尝试在 WebLogic Server 12c 中运行 Docx4j。 WebLogic Server 12c 带有 EclipseLink 2.3.2。

有一个类似的Post 描述了不幸没有答案的情况。

Docx4j 不适用于作为 EclipseLink 2.3.2 一部分的 JAXB (MOXy) 实现。我让 Docx4j 与 EclipseLink 2.5 独立运行。所以我非常有信心将 EclipseLink 2.5 与 Weblogic Server 12c 一起使用将解决 Docx4j 的问题。

如何将运行 WebLogic Server 12c 的 EclipseLink 版本 2.3.2 替换为 EclipseLink 版本 2.5?

【问题讨论】:

  • oracle 是否支持,就错误/问题而言?

标签: eclipselink moxy docx4j weblogic12c


【解决方案1】:

我更喜欢切换回 JAXB RI,而不是使用有问题的 moxy JAXB。 您可以这样做: http://docs.oracle.com/cd/E24329_01/web.1211/e24964/data_types.htm#CIHBHDGI

我使用了 Methode,将以下 jar 模块文件放在“startWebLogic.cmd”中: 设置 PRE_CLASSPATH=$wls_home/modules/databinding.override_1.0.0.0.jar

首先在类路径中。

【讨论】:

    【解决方案2】:

    Blaise 在其Blogpost 中提供的解决方案不适用于 WebLogic 12c。让它工作的解决方案是通过显式定义使用的库对 application.xml 进行微小的更改:

    <application>
      <display-name>EclipseLink 2.5 Shared Library</display-name>
        <module>
          <java>lib/eclipselink.jar</java>
      </module>
    </application>
    

    【讨论】:

      【解决方案3】:

      您可以在 WebLogic 中创建一个共享库来更新 EclipseLink 的版本。

      创建共享库

      EclipseLink25_SharedLibrary.ear

      共享库是一个EAR,内容如下

      • lib/eclipselink.jar
      • META-INF/application.xml

        <application>
          <display-name>EclipseLink 2.5 Shared Library</display-name>
          <module>
              <java></java>
          </module>
        </application>
        
      • META-INF/MANIFEST.MF

        Manifest-Version: 1.0
        Ant-Version: Apache Ant 1.8.2
        Created-By: 1.7.0_04-b21 (Oracle Corporation)
        Extension-Name: EclipseLink-2.5.0
        Specification-Version: 2.5.0
        Implementation-Version: 2.5.0.v20130507
        
      • META-INF/weblogic-application.xml

        <weblogic-application>
           <prefer-application-packages>
               <package-name>org.eclipse.persistence.*</package-name>
          </prefer-application-packages>
        
        </weblogic-application>
        

      使用共享库

      以下是您将如何打包应用程序以使用共享库,

      SampleApplication.ear

      • META-INF/MANIFEST.MF
      • META-INF/weblogic-application.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <wls:weblogic-application xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.2/weblogic-application.xsd">
            <!--weblogic-version:10.3.4-->
            <wls:application-param>
                <wls:param-name>webapp.encoding.default</wls:param-name>
                <wls:param-value>UTF-8</wls:param-value>
            </wls:application-param>
            <wls:library-ref>
                <wls:library-name>EclipseLink-2.5.0</wls:library-name>
                <wls:specification-version>2.5.0</wls:specification-version>
                <wls:implementation-version>2.5.0.v20130507</wls:implementation-version>
               <wls:exact-match>true</wls:exact-match>
            </wls:library-ref>
        </wls:weblogic-application>
        
      • SampleApplication.war


      更多信息

      【讨论】:

      • 非常感谢您的快速回答。我已经找到了您的博客文章,但它不适用于 WebLogic 12c。部署库时总是出错。但我最近找到了解决方案。 WebLogic 更严格一点,对它工作的 application.xml 稍作改动。您必须将 lib/eclipselink.jar 添加到 java 标签。
      • @SaschaHandke - 你能用你使用的application.xml 更新你的问题吗?
      • 遇到 bug 时是否升级 oracle 支持的 jar?
      猜你喜欢
      • 2016-02-06
      • 1970-01-01
      • 2020-09-19
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      相关资源
      最近更新 更多