如何将 OnlineTSPSource 与 esig/dss 库一起使用?

How to use an OnlineTSPSource with esig/dss Library?

我正在尝试将在线时间戳授权 (rfc3161) 与 Digital Signature Service Java library. However, the following snippet (from their test cases, and similar to the one from their Cookbook 一起使用:

String tspServer = "http://tsa.belgium.be/connect";
OnlineTSPSource otsp = new OnlineTSPSource(tspServer);
/* tried setting otsp.setDataLoader(new TimestampDataLoader());
   too, as it defaults to otsp.setDataLoader(new 
   NativeHTTPDataLoader()); the exception happens in both cases */
byte[] digest = DSSUtils.digest(DigestAlgorithm.SHA1, "Hello world".getBytes());
TimeStampToken timeStampResponse =
    otsp.getTimeStampResponse(DigestAlgorithm.SHA1, digest);

总是以下列异常结束:

eu.europa.esig.dss.DSSException: 
java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: 
org.apache.commons.io.IOUtils.closeQuietly(Ljava/io/Closeable;)V

已经尝试了许多不同的 public rfc3161 服务器(一些已列出 here)。当然那里有问题,但是,作为初学者,我无法理解哪里出了问题(应该有什么方法)。

如果有人能给我指引正确的方向让代码片段正常工作(或者甚至友好地在 cades/xades/pades 上用 Java 的 bouncycastle 评论可靠的启动指南)我会真的很感谢

Marteen Bodewes and Mark Rotteveel 的评论所述,类路径中的 Apache Commons-IO 版本有问题。该项目是使用 Apache Maven 设置的,并且有一个旧的 Commons-IO 版本在那里声明为依赖项。在这种情况下,删除该声明就足够了,因此 Maven 可以下载声明为 esig/DSS 依赖项的适当版本。

esig/DSS当时版本是5.4