我们有一个创建PDFs unsing jasperreports的应用程序.
它还在创建后使用iText操纵所述PDF.
我们最近开始在某些PDF上使用加密.这意味着在应用程序创建后可以处理PDF之前,必须对其进行解密.尝试使用iText时,PdfReader(String path, byte[] password)我得到以下异常:
java.lang.VerifyError: class org.bouncycastle.asn1.ASN1Primitive overrides final method equals.(Ljava/lang/Object;)Z
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at com.simontuffs.onejar.JarClassLoader.defineClass(JarClassLoader.java:561)
at com.simontuffs.onejar.JarClassLoader.findClass(JarClassLoader.java:475)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.itextpdf.text.pdf.PdfEncryption.<init>(PdfEncryption.java:148)
at com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj(PdfReader.java:914)
at com.itextpdf.text.pdf.PdfReader.readDocObj(PdfReader.java:1294)
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:643)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:187)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:212)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:202)
Run Code Online (Sandbox Code Playgroud)
该项目使用Maven构建为可运行的.jar,并使用以下依赖项:
iText 5.4.2
bouncycastle 1.48
我应该提一下,jasperreports有自己的iText和bouncycastle依赖:
iText 2.1.7
bouncycastle 1.38
我无法弄清楚发生了什么,需要帮助.
是否可以覆盖已在log4j.properties未创建新appender 的情况下配置的appender的"File"属性?如果是这样 - 怎么样?
情况就是这样:我有两个分配器,A1是ConsoleAppender,A2是FileAppender.A2的"文件"指向一般错误.log:
log4j.appender.A2.File=error.csv
此appender仅记录错误级别事件或更糟
log4j.appender.A2.Threshold=error.
现在我希望将这些错误写入不同的文件中,具体取决于导致错误的类,因为有几个类正在创建实例.能够快速查看哪个类创建了错误将会有很大的帮助,因为它更有用,然后浏览error.log来查找类标记.
所以我的想法是覆盖"File"属性,例如在这些新创建的类的构造函数中,因此它们将错误记录在不同的文件中.
非常感谢提前!