java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)
可能原因:
在本地WINDOWS编译测试没问题,只在LINUX服务器上面有这个问题,查了很久估计是服务器上面不同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);//选择需要印章的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.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