您的位置:首页 > 游戏 > 手游 > 狮城app更多网站_视频短链接生成器_企业网站排名优化_aso优化方案

狮城app更多网站_视频短链接生成器_企业网站排名优化_aso优化方案

2025/3/1 20:38:21 来源:https://blog.csdn.net/weixin_43779268/article/details/145940562  浏览:    关键词:狮城app更多网站_视频短链接生成器_企业网站排名优化_aso优化方案
狮城app更多网站_视频短链接生成器_企业网站排名优化_aso优化方案

自定义类加载器国密版本冲突

对接三方接口经常使用到国密加密包(bcprov),此时系统已经引入了1.5版本,而三方提供的sdk中引用了1.6版版本,两个版本有冲突,如果系统加载到1.5版本的将会加密异常(各种奇怪的异常),本文的解决方案是指定一个类加载器,完成指定加载sdk和1.6版本的加密包

自定义类类加载器

package com.huakai.springenv.config.test;import java.net.URL;
import java.net.URLClassLoader;public class IsolatedClassLoader extends URLClassLoader {private final ClassLoader parent;public IsolatedClassLoader(URL[] urls, ClassLoader parent) {super(urls, parent);this.parent = parent;}@Overrideprotected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {synchronized (getClassLoadingLock(name)) {Class<?> c = findLoadedClass(name);if (c == null) {try{c = this.findClass(name);}catch (Exception e){}if (c == null) {try {c = this.parent.loadClass(name);} catch (ClassNotFoundException e) {e.printStackTrace();}}}if (resolve) {resolveClass(c);}return c;}}
}

使用sdk

    private  OpenBankHttpClient getOpenBankHttpClient() throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException, IOException {// 指定版本的加密包URL urlbc = AbcMarketingConfig.class.getClassLoader().getResource("./abc/bcprov-jdk15on-1.68");// 三方sdkURL urlSM2SdkImpl = AbcMarketingConfig.class.getClassLoader().getResource("./abc/openbank-sdk-java-sm");URL[] urls= new URL[] {urlbc,urlSM2SdkImpl};IsolatedClassLoader sdkClassLoader = new IsolatedClassLoader(urls, AbcMarketingConfig.class.getClassLoader());// 使用自定义类加载器加载三方SDK的主类Class<?> requestParamsClass = sdkClassLoader.loadClass("com.abchina.openbank.OpenBankHttpClient");// 获取私有构造函数Constructor<?> constructor = requestParamsClass.getDeclaredConstructor();// 设置构造函数可访问constructor.setAccessible(true);// 使用构造函数创建对象return (OpenBankHttpClient) constructor.newInstance();}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com