admin管理员组文章数量:1650776
文章目录
- 异常:
- 不同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.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
PdfReader reader = new PdfReader(infilePath);//选择需要印章的pdf
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outFilePath));//加完印章后的pdf
Rectangle 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.4f
gs.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.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/u014505277/article/details/51858940
https://blog.csdn/huwise/article/details/109668173
本文标签: 异常parsersDocumentBuilderFactoryjavaxXML
版权声明:本文标题:解决javax.xml.parsers.DocumentBuilderFactory.setFeature(LjavalangString;Z)V异常 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1729532091a1204937.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论