weblogic中优先加载应用中的jar包 prefer-application-packages

仅针对10.3及以上版本。 

在WEB-INF下面添加weblogic.xml文件。

01 <?xml version="1.0" encoding="UTF-8"?>
02 <weblogic-web-app
03         xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
04         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
05         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
06 http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
07 http://xmlns.oracle.com/weblogic/weblogic-web-app
08 http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd">
09     <jsp-descriptor>
10         <working-dir>app_workingDir</working-dir>
11     </jsp-descriptor>
12     <container-descriptor>
13         <!--<prefer-web-inf-classes>true</prefer-web-inf-classes>-->
14         <prefer-application-packages>
15             <package-name>org.apache.commons.lang.*</package-name>
16             <package-name>antlr.*</package-name>
17             <package-name>org.hibernate.*</package-name>
18             <package-name>javax.persistence.*</package-name>
19         </prefer-application-packages>
20     </container-descriptor>
21     <context-root>/app</context-root>
22 </weblogic-web-app>
其中prefer-web-inf-classes和prefer-application-packages只能二选一。 
使用此方法对hibernate jpa2.0加载时可不用修改weblogic启动脚本的CLASSPATH。 
注意xml文件的xsd文件声明必须正确。 

我用此方法解决了在weblogic10.3.6和hibernate3.6.10的jpa jar包冲突。 
Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy 
如只设定prefer-web-inf-classes为true 也不能解决以上问题。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果您正在使用Weblogic,您需要将'org.slf4j'添加到web-inf / weblogic.xml的prefer-application-packages:org.slf4j.impl.log4jloggerfactory。 ### 回答2: 如果您正在使用WebLogic,则需要将'org.slf4j'添加到web-inf / weblogic.xml的prefer-application-packages:org.slf4j.impl.log4jloggerfactory。 WebLogic是一款强大的Java应用程序服务器,用于开发和部署Java EE应用程序。它支持许多不同的应用程序框架和库,包括Slf4j。Slf4j是一个简单的日志记录抽象框架,可与许多不同的日志记录实现一起使用。 在WebLogic使用Slf4j,您需要将Slf4j添加到web-inf / weblogic.xml的prefer-application-packages。这是因为WebLogic使用了其自己的类加载器,它可能会与您的应用程序使用的类加载器冲突。通过将Slf4j添加到prefer-application-packages,您可以确保WebLogic将使用您指定的Slf4j实现。 具体来说,您需要将以下内容添加到web-inf / weblogic.xml文件: <prefer-application-packages> <package-name>org.slf4j.*</package-name> <package-name>org.apache.logging.*</package-name> </prefer-application-packages> 此外,您还需要指定要使用的Slf4j实现。在这种情况下,您需要指定log4jloggerfactory作为Slf4j的实现。对于这样做,您需要在web-inf文件夹的log4j.properties文件添加以下内容: # Specify the logger for Slf4j log4j.logger.org.slf4j=DEBUG,slf4j # Specify the appender for Slf4j log4j.appender.slf4j=org.apache.log4j.ConsoleAppender log4j.appender.slf4j.layout=org.apache.log4j.PatternLayout log4j.appender.slf4j.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 这将确保WebLogic将使用Slf4j作为日志记录框架,并将使用log4jloggerfactory作为其实现。 ### 回答3: 如果您正在使用WebLogic,您需要将'org.slf4j'添加到web-inf / weblogic.xml的prefer-application-packages:org.slf4j.impl.log4jloggerfactory。 首先,需要明确的是,WebLogic是一款Java应用服务器,它是一个强大且普遍使用的企业级服务器,专为构建和部署大规模分布式Web应用程序、企业级应用程序和服务而设计的。 而'SLF4J'指的是Simple Logging Facade for Java(Java简单日志门面),它提供了一种统一的日志接口,以便在Java应用程序使用不同的日志框架,而不需要对应用程序进行更改。和其它日志框架一样,例如log4j、logback和java.util.logging,SLF4J也提供了不同级别的日志信息,例如TRACE、DEBUG、INFO、WARN、ERROR和FATAL。 当您想在WebLogic服务器上使用SLF4J日志门面时,需要将org.slf4j添加到web-inf / weblogic.xml的prefer-application-packages。这个文件可以在您的Web应用程序的WEB-INF文件夹下找到。 在文件的开头添加以下所有内容 <prefer-application-packages> <package-name>org.slf4j</package-name> </prefer-application-packages> 这将通知WebLogic服务器,在处理应用程序时优先使用SLF4J。此外,您还需要将org.slf4j.impl.log4jloggerfactory添加到此文件的prefer-application-packages,以便在日志记录使用log4j框架。 这样,在WebLogic服务器上使用SLF4J日志门面将变得更加容易和稳健,可以提供更好的日志资源以帮助您更好地管理和监视您的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值