Reputation: 1
getting the below error message with Apache POI and the xmlsec
java.lang.InstantiationError: org.apache.xml.security.signature.XMLSignatureInput at org.apache.poi.poifs.crypt.dsig.services.RelationshipTransformService.transform(RelationshipTransformService.java:228) ~[poi-ooxml-5.2.5.jar:5.2.5] at org.apache.jcp.xml.dsig.internal.dom.DOMTransform.transform(DOMTransform.java:150) ~[xmlsec-4.0.2.jar:4.0.2] at org.apache.jcp.xml.dsig.internal.dom.DOMReference.transform(DOMReference.java:486) ~[xmlsec-4.0.2.jar:4.0.2] at org.apache.jcp.xml.dsig.internal.dom.DOMReference.digest(DOMReference.java:387) ~[xmlsec-4.0.2.jar:4.0.2] at org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:503) ~[xmlsec-4.0.2.jar:4.0.2] at org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:389) ~[xmlsec-4.0.2.jar:4.0.2] at org.apache.poi.poifs.crypt.dsig.SignatureInfo.preSign(SignatureInfo.java:413) ~[poi-ooxml-5.2.5.jar:5.2.5] at org.apache.poi.poifs.crypt.dsig.SignatureInfo.confirmSignature(SignatureInfo.java:225) ~[poi-ooxml-5.2.5.jar:5.2.5] at com.daimler.rde.importer.batch.steps.excel.creator.SignatureCreator.addSignatureToDocument(SignatureCreator.java:40) ~[classes/:?] at com.daimler.rde.importer.batch.steps.excel.creator.ReportingFileExcelCreator.createExcelFile(ReportingFileExcelCreator.java:54) ~[classes/:?] at com.daimler.rde.importer.batch.steps.excel.ReportingFileProcessor.process(ReportingFileProcessor.java:50) ~[classes/:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351) ~[spring-aop-6.1.5.jar:6.1.5] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.5.jar:6.1.5] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>1.78.1</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>1.78.1</version>
</dependency>
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.5</version>
</dependency>
public byte[] addSignatureToDocument (byte[] excelFile) throws IOException, InvalidFormatException, XMLSignatureException, MarshalException, RdeSignatureException {
InputStream in = new ByteArrayInputStream(excelFile);
OPCPackage opcPackage = OPCPackage.open(in);
SignatureConfig signatureConfig = certificateService.getSignatureConfig();
SignatureInfo si = new SignatureInfo();
si.setOpcPackage(opcPackage);
si.setSignatureConfig(signatureConfig);
si.confirmSignature();
//obtain signed document
ByteArrayOutputStream os = new ByteArrayOutputStream();
opcPackage.save(os);
return os.toByteArray();
}
Upvotes: 0
Views: 163