如何在WebLogic Server 12c中将EclipseLink 2.3.2替换为EclipseLink 2.5

时间:2013-07-02 09:19:14

标签: eclipselink moxy docx4j weblogic12c

我正在尝试在WebLogic Server 12c中运行Docx4j。 WebLogic Server 12c随EclipseLink 2.3.2一起提供。

有一个类似的Post描述了这种情况,但遗憾的是没有答案。

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

如何使用EclipseLink Version 2.5替换运行WebLogic Server 12c的EclipseLink Vesion 2.3.2?

3 个答案:

答案 0 :(得分:2)

您可以在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


更多信息

答案 1 :(得分: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>

答案 2 :(得分: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

将它放在类路径中。