如何在部署Enterprise App时将Weblogic 12.1.3配置为使用旧版本的Jersey

时间:2016-07-04 04:58:54

标签: java jersey weblogic

我已经安装了Weblogic 12.1.3作为从Weblogic 10.3.6升级到Weblogic 12.1.3的一部分 我的应用程序使用Jersey版1.17罐 但是,在我们安装Weblogic 12.1.3之后,我们在文件夹ORACLE_HOME / oracle_common / modules中获得Jersey 1.18 Jars Jersey 1.18 Jars覆盖了我们的应用程序中捆绑的Jersey 1.17罐子,并导致部署我们的应用程序时出错。

我们收到错误/警告消息,如下所示

警告:方法public javax.xml.bind.JAXBElement com.ipc.dms.dsfs.service.rs.DSFSResource.getEnterpriseContacts(java.lang.String,java.lang。)的返回类型javax.xml.bind.JAXBElement。 Integer,java.lang.Integer,java.lang.String)无法解析为具体类型

警告:方法public javax.xml.bind.JAXBElement com.ipc.dms.dsfs.service.rs.DSFSResource.getMediaServiceConfigList(java.lang.String)的返回类型javax.xml.bind.JAXBElement无法解析为具体类型

该应用程序正在使用从以下文件加载的ServletContainerInitializer类com.sun.jersey.server.impl.container.servlet.JerseyServletContainerInitializer:file:/opt/oracle/oracle_common/modules/jersey-servlet-1.18.jar。此初始化程序将覆盖系统中可用的初始化程序。 **********>

java.lang.NoClassDefFoundError:无法初始化类org.jgroups.conf.XmlConfigurator 在org.jgroups.conf.ConfiguratorFactory.getXmlConfigurator(ConfiguratorFactory.java:216) 在org.jgroups.conf.ConfiguratorFactory.getStackConfigurator(ConfiguratorFactory.java:93) 在org.jgroups.JChannel。(JChannel.java:142)

如果我们从ORACLE_HOME / oracle_common / modules中删除Jersey 1.18 Jars,我们就不会收到这些错误消息。

但是,从安装文件夹中删除jar会导致其他问题。具体来说,如果我从ORACLE_HOME / oracle_common / modules

中删除Jersey 1.18 jar,我会得到下面提到的问题

weblogic.kernel.Default(自我调整)'> <> <> <> < 1467281457661> < BEA-149231> <无法将应用程序的激活状态设置为true" dunkin"。 weblogic.application.ModuleException:java.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy 在weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140) 在weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)

因此,我需要知道在Weblogic 12.1.3上部署应用程序时是否可以将我们的EAR配置为使用较旧版本的Jersey,即Jersey 1.17。

如果是,请提供配置详细信息。

1 个答案:

答案 0 :(得分:1)

您有两个选择:

  1. 要将<prefer-application-packages>标记包含在您耳朵的weblogic-application.xml中,如下所示:

    <weblogic-application> <prefer-application-packages> <package-name>com.sun.jersey.*</package-name> </prefer-application-packages> </weblogic-application>

  2. 要包含war文件的weblogic.xml中的<wls:prefer-web-inf-classes>标记,如下所示:

    <wls:container-descriptor> <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes> </wls:container-descriptor>

  3. 如果您决定使用选项2,那么您的应用程序的库将覆盖weblogic的所有常用库。所以我建议选择1。