6

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

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

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?

4

3 回答 3

2

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

创建共享库

EclipseLink25_SharedLibrary.ear

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

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

    <application>
      <display-name>EclipseLink 2.5 Shared Library</display-name>
      <module>
          <java></java>
      </module>
    </application>
    
  • 元信息/清单.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>
    

使用共享库

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

示例应用程序.ear

  • 元信息/清单.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


了解更多信息

于 2013-07-02T10:12:58.913 回答
2

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

<application>
  <display-name>EclipseLink 2.5 Shared Library</display-name>
    <module>
      <java>lib/eclipselink.jar</java>
  </module>
</application>
于 2013-07-03T07:35:05.833 回答
1

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

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

在类路径中首先拥有它。

于 2014-03-06T15:26:34.397 回答