You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:webstart-maven-plugin签名Jar失败,时间戳请求遭拒绝

解决webstart-maven-plugin签名JNLP时的时间戳错误

这个问题我之前帮团队排查过,核心是Java签名过程中无法获取有效的时间戳导致的——毕竟Java要求签名必须附带时间戳来证明签名时证书是有效的,下面给你几个实用的解决方向:

1. 检查时间戳服务器的可用性与网络

默认的时间戳服务器可能因为网络限制、服务商变更等原因无法访问,你可以先测试下常用的公开时间戳服务器是否能连通:

  • 用命令行测试:curl http://timestamp.digicert.com,如果能返回内容说明网络没问题;如果超时,大概率是网络防火墙或者代理的问题,需要调整网络配置。
  • 也可以换用其他可靠的时间戳服务器,比如http://timestamp.sectigo.com或者http://tsa.starfieldtech.com。

2. 明确配置插件的时间戳参数

在你的pom.xml里,给webstart-maven-plugin的签名配置指定可用的时间戳服务器,示例配置如下:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>webstart-maven-plugin</artifactId>
    <version>1.0-beta-6</version>
    <configuration>
        <!-- 保留你原有的其他配置,比如jnlp输出路径、依赖处理等 -->
        <sign>
            <keystore>你的密钥库路径</keystore>
            <storepass>密钥库密码</storepass>
            <alias>密钥别名</alias>
            <!-- 指定可用的时间戳服务器 -->
            <tsaurl>http://timestamp.digicert.com</tsaurl>
        </sign>
    </configuration>
</plugin>

如果是临时测试(生产环境不推荐),可以关闭时间戳验证,在<sign>节点里添加<tsa>false</tsa>,跳过时间戳请求。

3. 检查本地系统时间

别小看这个细节——如果你的机器系统时间和实际时间偏差过大(比如差了几个小时以上),时间戳服务器会拒绝请求,导致报错。确保本地时间准确,时区设置正确。

4. 升级插件版本

你用的1.0-beta-6是比较老旧的测试版本,存在不少已知问题,包括时间戳服务器的兼容问题。建议升级到最新的稳定版本(比如1.0.0),新版本不仅修复了很多bug,还默认使用更可靠的时间戳服务。

5. 验证目标jar包的完整性

报错里提到的unprocessed_commons-codec-1.10.jar可能存在损坏,你可以尝试:

  • 清理本地Maven仓库:执行mvn clean install -U,强制重新下载所有依赖;
  • 手动检查这个jar包是否能正常打开,或者替换成官方下载的commons-codec-1.10.jar。

内容的提问来源于stack exchange,提问作者Mayoares

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:58:26