解决javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常
创始人
2024-02-02 09:22:47
0

文章目录

  • 异常:
  • 不同jar包的多xml解析器冲突
  • 解决
  • 其他

异常:

java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)

在这里插入图片描述
可能原因:
在本地WINDOWS编译测试没问题,只在LINUX服务器上面有这个问题,查了很久估计是服务器上面不同jar包的多xml解析器冲突

不同jar包的多xml解析器冲突

排查项目是否存在如下( 也可能是其他包)关于xm的jar包

xerces.jar
xercesImpl.jar

解决

方法一:项目中去除xercesl依赖
方法二:项目启动, 启动项目发现了这个报错,试了很多方式,最终用下面这种方式解决了

public  void pdfToWaterMarkAndCPPDF(String infilePath,String outFilePath,String picPath,String bgPicPath) {try{System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");PdfReader reader = new PdfReader(infilePath);//选择需要印章的pdfPdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outFilePath));//加完印章后的pdfRectangle pageSize = reader.getPageSize(1);//获得第一页float height = pageSize.getHeight();float width  = pageSize.getWidth();int nums = reader.getNumberOfPages();Image[] nImage =  subImages(picPath,nums);//生成骑缝章切割图片Image image = Image.getInstance(bgPicPath);for(int n=1;n<=nums;n++){PdfContentByte over = stamp.getOverContent(n);//设置在第几页打印印章Image img = nImage[n-1];//选择图片img.setAlignment(1);over.beginText();// 设置水印透明度PdfGState gs = new PdfGState();// 设置笔触字体不透明度为0.4fgs.setFillOpacity(0.6f);image.setAbsolutePosition(0, 0);image.scaleAbsolute(width-10,height-10);//控制图片大小// 设置透明度over.setGState(gs);// 添加水印图片over.addImage(image);img.scaleAbsolute(120/nums,52);//控制图片大小img.setAbsolutePosition(width-img.getWidth()-10,height/2-img.getHeight()/2);//控制图片位置over.addImage(img);//结束设置over.endText();over.stroke();}stamp.close();reader.close();} catch (Exception e) {e.printStackTrace();}}

解决办法:在代码前面加上如下代码

System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");

其他

java.lang.ClassCastException:
weblogic.xml.jaxp.RegistryDocumentBuilderFactory cannot be cast to
javax.xml.parsers.DocumentBuilderFactory
则是因为xml-apis.jar和stax-api-1.0.1.jar这个jar包导致的。
tomcat中不带此jar包,而weblogic带,所以就出现jar包冲突了,解决办法就是把程序中的此jar包给删掉啦。
———————————————— 版权声明:本文为CSDN博主「wh_week8」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:
https://blog.csdn.net/u014505277/article/details/51858940
https://blog.csdn.net/huwise/article/details/109668173

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...