最近项目上有个地市要上农行的网上支付,在测试的时候报了个离奇的 com.hitrust.trustpay.client.TrxException: 系统发生无法预期的错误 !!真是急死人。
后来追踪错误,打印日志发现其实是这样的错误:
java.lang.ClassNotFoundException: sun.security.validator.KeyStores
at com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.java:503)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:404)
at java.lang.ClassLoader.loadClass(ClassLoader.java:606)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.<init>(DashoA12275)
at com.sun.net.ssl.internal.ssl.TrustManagerFactoryImpl$SimpleFactory.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.TrustManagerFactoryImpl.engineInit(DashoA12275)
at javax.net.ssl.TrustManagerFactory.init(TrustManagerFactory.java:3)
at com.sun.net.ssl.TrustManagerFactorySpiWrapper.engineInit(DashoA12275)
at com.sun.net.ssl.TrustManagerFactory.init(DashoA12275)
于是上网去查,这一查就出大问题了,sun.security.validator.KeyStores这个类是SUN的jdk里面的类,websphere自带的jdk是IBM的,没有这个类,
,当时真的怒了!!!
这可让我怎么办啊???于是我找了小组老人们帮我解决。搞了大半天才弄出来!原来根本就不是jdk的问题!!!
是农行的jsse.jar和交行的jsse_BankOfCommunication.jar有冲突!!!
这下可好了,问题解决了,可是农行和交行不能共存了,这真是个蛋疼的结局啊!
留下这篇日志给以后还会遇到这样问题的人们参考,同时大家一同看看这个农行和交行因jar包冲突不能并存怎么解决!
本文记录了一次在实现农业银行网上支付过程中遇到的JSSE.jar与交通银行JSSE_BankOfCommunication.jar冲突的问题及解决过程。该问题表现为系统抛出ClassNotFoundException异常,指向Sun JDK特有的类未找到。经过排查发现,实际原因是两个银行提供的JSSE相关包存在冲突。
1874

被折叠的 条评论
为什么被折叠?



