在我的程序中,我从服务器下载一个XML文件作为String并使用证书对其进行签名。当我从Eclipse运行程序时,一切正常。但是,当我将其导出到.jar文件时,会发生以下错误。我应该在哪里寻找问题?
eu.europa.esig.dss.DSSException: Unable to parse content (XML expected)
at eu.europa.esig.dss.DomUtils.buildDOM(DomUtils.java:242)
at eu.europa.esig.dss.DomUtils.buildDOM(DomUtils.java:209)
at eu.europa.esig.dss.xades.signature.EnvelopedSignatureBuilder.buildRootDocumentDom(EnvelopedSignatureBuilder.java:75)
at eu.europa.esig.dss.xades.signature.XAdESSignatureBuilder.build(XAdESSignatureBuilder.java:179)
at eu.europa.esig.dss.xades.signature.XAdESLevelBaselineB.getDataToSign(XAdESLevelBaselineB.java:72)
at eu.europa.esig.dss.xades.signature.XAdESService.getDataToSign(XAdESService.java:92)
at pl.btech.signer.Signer.signFilesWithMSCAPI(Signer.java:116)
at pl.btech.signer.Signer.signXML(Signer.java:58)
at pl.btech.signer.GuiController$1.run(GuiController.java:124)
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at eu.europa.esig.dss.DomUtils.buildDOM(DomUtils.java:240)
... 8 more
编辑: 它是发生错误的代码片段。内容是我从表单服务器获取的XML字符串。
File srcFile = File.createTempFile("src", ".xml");
FileWriter writer = new FileWriter(srcFile);
writer.write(content);
writer.close();
DSSDocument doc = new FileDocument(srcFile));
ToBeSigned dataToSign = service.getDataToSign(doc, parameters);
答案 0 :(得分:0)
impala-shell -B -q "select * from anylbi.tablename_1;" -o extract.csv
--print_header '--output_delimiter=,'
使用平台的默认字符集。这因应用程序部署而异,因此不可行。如果XML始终为UTF-8,请执行以下操作:
FileWriter
避免使用FileWriter / FileReader。