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

Saxon命令行模式下如何通过HTTPS实现xsl:include?

解决Saxon命令行模式下HTTPS协议支持问题

我来帮你搞定这个问题!你碰到的unknown protocol: https错误,本质是Saxon依赖的Java运行环境没正确启用HTTPS支持——毕竟Saxon HE是基于Java开发的,网络协议的支持全靠Java的底层配置。下面给你几个靠谱的解决办法:

1. 先检查Java版本,不行就升级

Saxon 9.7版本推荐用Java 8及以上版本,如果你装的是Java 6或者更早的版本,大概率会出HTTPS相关的问题。赶紧把Java更到8或更高版本,新版本Java默认就带完善的HTTPS支持,很多老版本的协议缺陷直接就修复了。

2. 别用默认的transform脚本,直接用Java命令启动

有时候默认的transform.bat(Windows)或transform.sh(Linux)脚本可能没配置好Java的类路径,导致HTTPS协议加载失败。你可以直接用Java命令手动调用Saxon,这样能确保所有必要的库都被正确加载:

java -cp "你实际的Saxon路径/saxon9he.jar" net.sf.saxon.Transform -xsl:https://raw.githubusercontent.com/VladimirAlexiev/LODE/master/src/main/webapp/extraction.xsl -s:ebg-ontology.rdf -o:index.html

比如你装在C:\Program Files\SaxonHE9-7-0-21N,那路径就改成"C:\Program Files\SaxonHE9-7-0-21N\saxon9he.jar"。

3. 处理SSL证书信任问题(如果升级Java后还是报错)

要是升级Java后还是不行,可能是GitHub的SSL证书在你的Java环境里不被信任。这里有两个办法:

临时禁用证书验证(只用来测试,别在生产环境用)

在Java命令里加几个参数,强制Java信任所有证书:

java -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore="你的Java路径/jre/lib/security/cacerts" -Djavax.net.ssl.trustStorePassword=changeit -cp "saxon9he.jar" net.sf.saxon.Transform -xsl:https://raw.githubusercontent.com/VladimirAlexiev/LODE/master/src/main/webapp/extraction.xsl -s:ebg-ontology.rdf -o:index.html

默认的信任库密码是changeit,如果你改过就换成自己的密码。

手动导入GitHub的证书到Java信任库

这个是更安全的长期解决方案:

  1. 用浏览器打开https://raw.githubusercontent.com,导出网站的SSL证书(选DER格式)。
  2. 用Java自带的keytool命令把证书导入信任库:
keytool -import -alias githubraw -file 你导出的证书路径/github-cert.der -keystore "你的Java路径/jre/lib/security/cacerts"

按照提示输入密码(默认changeit),确认导入就行。

4. 本地缓存XSL文件(应急备选)

如果上面的方法都搞不定,你可以把extraction.xsl和它引用的swrl-module.xsl等文件都下载到本地,然后修改extraction.xsl里的xsl:include路径为本地相对路径,再运行转换:

transform -xsl:./extraction.xsl -s:ebg-ontology.rdf -o:index.html

这个方法直接绕开了HTTPS的问题,适合临时应急用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:18:38