关于java.lang.NoSuchMethodErr:org.bouncycastle.asn1.DERTaggedObject.fromByteArray错误

错误如下图,调用证书验签时,出现错误,引入的包bcprov-jdk16-145.jar,每次调用都会出现该错误,通过分析可能是包冲突所致,查看了所有的相关数据,删除了所有可能冲突的包后还是出现同样的错误。单独新建web项目,引入仅需的包,还是同样的错误,分析后发现weblogic服务器同样存在相应的类。可能是由于服务启动时是因为先加载了weblogic的jar后没有加载bcprov-jdk16-145.jar的相应方法。通过修改weblogic.xml文件进行加载顺序控制。

关于java.lang.NoSuchMethodErr:org.bouncycastle.asn1.DERTaggedObject.fromByteArray错误

weblogic.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
  <jsp-descriptor>
    <keepgenerated>true</keepgenerated>
    <debug>true</debug>
  </jsp-descriptor>
  <context-root>/WtJsJms</context-root>
 <container-descriptor>
     <prefer-web-inf-classes>true</prefer-web-inf-classes>
 </container-descriptor>

</weblogic-web-app>



<container-descriptor>
     <prefer-web-inf-classes>true</prefer-web-inf-classes>
   </container-descriptor>

 
上面配置的含义:优先使用Web应用里加载的类,即就是优先加载web-inf下lib中的jar包。
 
如果什么时候发现在Tomcat下用的好好的,但是放到weblogic下就出了问题,那么多半在\WEB-INF\weblogic.xml添上上面的设置就会好的,当然有可能还需要添加一些jar包。