最近项目上有个地市要上农行的网上支付,在测试的时候报了个离奇的 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包冲突不能并存怎么解决!