我正在使用kotlin将数据库中的类存储在数据库中。问题是该类没有没有参数的构造函数(这是一个Java类)。当我从数据库中检索对象时,出现以下错误,因为它没有构造函数:
java.lang.NoSuchMethodException: org.springframework.security.oauth2.core.OAuth2AccessToken.<init>()
我认为它将解决问题的唯一解决方案如下:
关于如何解决此问题还有其他想法吗?
这是我在数据库中的类(class):
@Document(collection = "authorizedClient")
data class AuthorizedClientDatabase(
@Id
var id: ObjectId = ObjectId.get(),
var name: String? = null,
var clientRegistration: ClientRegistration,
var accessToken: OAuth2AccessToken,
var refreshToken: OAuth2RefreshToken? = null
)
这是存储库类:
@Repository
interface AuthorizedClientDatabaseRepository : MongoRepository<AuthorizedClientDatabase, ObjectId> {
}
这是OAuth2AccessToken
我只是在做一个:
authorizedClientDatabaseRepository.findById(...)
最佳答案
OAuth2AccessToken
类没有您要尝试调用的非参数构造函数。您需要更改代码以使用两个现有构造函数之一:
public OAuth2AccessToken(TokenType tokenType, String tokenValue,
Instant issuedAt, Instant expiresAt) {
// ...
}
要么
public OAuth2AccessToken(TokenType tokenType, String tokenValue,
Instant issuedAt, Instant expiresAt, Set<String> scopes) {
// ...
}
关于java - Kotlin java.lang.NoSuchMethodException:<init>(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61960058/