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

Azure AD认证调用acquireToken方法抛出DOMSource处理异常求助

解决Azure AD ADAL4J中的DOMSource处理异常

这个问题我之前碰到过,异常信息已经把原因说得很直白了:你的项目运行时的classpath里缺少了saxon9-dom.jar这个依赖包,导致ADAL4J在解析WS-Trust响应时无法处理DOMSource对象。

为什么会出现这个问题?

当你调用acquireToken使用用户名密码流(Resource Owner Password Credentials Flow)时,ADAL4J会向Azure AD发送WS-Trust请求,返回的XML响应需要通过Saxon库完成DOM转换和解析。虽然ADAL4J本身依赖Saxon核心库,但负责DOM处理的saxon9-dom模块并不是默认的传递依赖,所以需要你手动添加到项目中。

解决方案

根据你使用的Gradle配置,把以下依赖添加到build.gradle文件里:

implementation group: 'net.sf.saxon', name: 'saxon-dom', version: '9.9.1-8'

如果你更倾向于用包含完整功能的Saxon-HE包(它已经内置了DOM处理模块),也可以添加:

implementation group: 'net.sf.saxon', name: 'Saxon-HE', version: '9.9.1-8'

注意要选择和ADAL4J 1.6.6兼容的版本,推荐用9.9.x系列的Saxon版本,避免版本冲突引发其他问题。

添加完依赖后重新构建项目,确保saxon9-dom.jar(或Saxon-HE对应的jar包)被正确加入运行时classpath,再调用acquireToken方法,这个异常应该就能解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 06:43:16