项目

一般

简介

AASV10 关于调整类加载顺序问题

佘 肃徽超过 3 年 之前添加

aasv10中可以用以下手段调整类加载顺序,当应用里存在与aas同名(全路径)的类时,默认是优先加载aas的类,如希望优先加载应用的类时,可以进行如下配置:

在应用的WEB-INF下加入apusic-web.xml,文件示例见附件:

1、只配置delegate=false时,所有的同名类都会优先从应用加载,除了java开头的类。

2、如果需要优先从应用加载java开头得类,需要在jvm参数里添加系统参数com.sun.enterprise.overrideablejavaxpackages

示例如下: -Dcom.sun.enterprise.overrideablejavaxpackages=javax.el,javax.xxx

3、如果只需要指定的类优先从应用加载则需要设置,delegate=false,并且将需要优先加载的包名配置到prefer-app-pkg属性,示例如下:

<?xml version="1.0" encoding="UTF-8"?>  
<aas-web-app> 
    <class-loader delegate="false" prefer-app-pkg="com.fasterxml.jackson,com.xxx"/>
</aas-web-app>

4、如果要指定某些类不要应用优先加载,需要配置delegate=true 同时配置 include-pkg属性,示例如下:

 

<?xml version="1.0" encoding="UTF-8"?>  
<aas-web-app> 
    <class-loader delegate="false" include-pkg="com.fasterxml.jackson,com.xxx"/>
</aas-web-app>