Android上的Spring OAuth2异常:在路径上找不到类“javax.xml.transform.stax.StAXSource”:DexPathList

问题描述 投票:0回答:1

我尝试使用spring的OAuth2依赖项为服务器创建一个android客户端。问题是当我调用这个构造函数时:

OAuth2RestTemplate oAuthRestTemplate = new Auth2RestTemplate(resourceDetails);

我得到这个例外:

Didn't find class "javax.xml.transform.stax.StAXSource" on path: DexPathList

我使用的是使用gradle的Android Studio,我包含OAuth2依赖项,如下所示:

dependencies {
    implementation 'org.springframework.security.oauth:spring-security-oauth2:2.3.0.RC1'
    ...
}

similar question中,接受的答案建议包括Spring rest-template依赖(compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'),但是当我这样做时,我得到另一个错误,我也发布了here

我认为不应该包含Spring rest-template依赖项,因为它可能已经被Spring OAuth依赖项导入了。这是真的吗?如果是,我怎么能解决另一个类(javax.xml.transform.stax.StAXSource)无法找到的事实呢?我认为无法找到这个类的原因是因为我在android上使用自己的JDK实现,正如this answer所说。

如果有人能帮我解决这个问题,那将非常感激。

java android spring oauth-2.0 dependencies
1个回答
0
投票

似乎需要其他依赖项(spring-android-rest-template依赖项),我不得不放置它们并且还排除重复的模块。我是这样做的:

compile('org.springframework.android:spring-android-rest-template:2.0.0.M3') {
    exclude module: 'spring-android-core'
}

compile('org.springframework.security.oauth:spring-security-oauth2:2.3.0.RC1'){
    exclude module: 'spring-web'
}
© www.soinside.com 2019 - 2024. All rights reserved.