错误:javax.ws.rs.notfoundexception:http 404找不到
我正在尝试测试使用KeyCloak库从KeyCloak获取所有用户详细信息的代码。但是我一直看到这个错误。谁能帮我吗?
测试代码:
trait Setup {
val keycloak: Keycloak = mock[Keycloak]
val keycloakBuilder: KeycloakBuilder = mock[KeycloakBuilder]
val service = new NewUserService(conf)
val restEasy: ResteasyClientBuilder = mock[ResteasyClientBuilder]
val restEasyClient: ResteasyClient = mock[ResteasyClient]
val realmResource: RealmResource = mock[RealmResource]
val usersResource: UsersResource = mock[UsersResource]
}
"NewUserService#getAllUsers" should {
"return all users" in new Setup {
when(restEasy.build()) thenReturn restEasyClient
when(keycloakBuilder.build()) thenReturn keycloak
when(restEasy.build()) thenReturn restEasyClient
when(keycloak.realm(any[String])) thenReturn realmResource
when(realmResource.users()) thenReturn usersResource
when(usersResource.list()) thenReturn List(any[UserRepresentation]).asJava
whenReady(service.getAllUsers) { result =>
assert(result.isRight)
}
}
}
newuserservice.scala:
class NewUserService(conf: Config)(implicit val ec: ExecutionContext, logger: LoggingAdapter) {
def getAllUsers: Future[Either[NewUserServiceError, util.List[idm.UserRepresentation]]] = {
val keycloakConf = conf.getConfig("keycloak")
val serverUrl = keycloakConf.getString("realmServerURL")
val realm = keycloakConf.getString("realmName")
val userName = keycloakConf.getString("username")
val password = keycloakConf.getString("password")
val clientId = keycloakConf.getString("clientId")
val clientSecret = keycloakConf.getString("clientSecret")
val keycloakBuild = KeycloakBuilder
.builder()
.serverUrl(serverUrl)
.realm(realm)
.username(userName)
.password(password)
.clientId(clientId)
.clientSecret(clientSecret)
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(20).build())
.build()
val usersList = Future(Try(keycloakBuild.realm("knoldus").users().list()))
usersList.map {
case Success(users) =>
users.asRight
case Failure(exception) =>
logger.error(s"Unable to get user details $exception")
NewUserServiceError.UserNotFoundError.asLeft
}
}
}
object NewUserService {
sealed trait NewUserServiceError
object NewUserServiceError {
case object UserNotFoundError extends NewUserServiceError
case object InternalServerError extends NewUserServiceError
}
}
当我在8080端口启动keycloak服务器时,我会收到连接拒绝的错误。当我在8080端口上启动它时,我会发现没有发现错误。请告诉我我在做什么错。
错误:
无法获取用户详细信息javax.ws.rs.processingexception:ResteAsy004655:无法调用请求:org.apache.http.conn.htttpphostconnectexception:连接到127.0.0.0.0.1:8080
无法获取用户详细信息javax.ws.rs.processingexception:javax.ws.rs.rs.notfoundexception:http 404找不到
I am trying to test my code that gets all the user details from Keycloak using the Keycloak library. But I keep seeing this error. can anyone help me with this?
Test code:
trait Setup {
val keycloak: Keycloak = mock[Keycloak]
val keycloakBuilder: KeycloakBuilder = mock[KeycloakBuilder]
val service = new NewUserService(conf)
val restEasy: ResteasyClientBuilder = mock[ResteasyClientBuilder]
val restEasyClient: ResteasyClient = mock[ResteasyClient]
val realmResource: RealmResource = mock[RealmResource]
val usersResource: UsersResource = mock[UsersResource]
}
"NewUserService#getAllUsers" should {
"return all users" in new Setup {
when(restEasy.build()) thenReturn restEasyClient
when(keycloakBuilder.build()) thenReturn keycloak
when(restEasy.build()) thenReturn restEasyClient
when(keycloak.realm(any[String])) thenReturn realmResource
when(realmResource.users()) thenReturn usersResource
when(usersResource.list()) thenReturn List(any[UserRepresentation]).asJava
whenReady(service.getAllUsers) { result =>
assert(result.isRight)
}
}
}
NewUserService.scala:
class NewUserService(conf: Config)(implicit val ec: ExecutionContext, logger: LoggingAdapter) {
def getAllUsers: Future[Either[NewUserServiceError, util.List[idm.UserRepresentation]]] = {
val keycloakConf = conf.getConfig("keycloak")
val serverUrl = keycloakConf.getString("realmServerURL")
val realm = keycloakConf.getString("realmName")
val userName = keycloakConf.getString("username")
val password = keycloakConf.getString("password")
val clientId = keycloakConf.getString("clientId")
val clientSecret = keycloakConf.getString("clientSecret")
val keycloakBuild = KeycloakBuilder
.builder()
.serverUrl(serverUrl)
.realm(realm)
.username(userName)
.password(password)
.clientId(clientId)
.clientSecret(clientSecret)
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(20).build())
.build()
val usersList = Future(Try(keycloakBuild.realm("knoldus").users().list()))
usersList.map {
case Success(users) =>
users.asRight
case Failure(exception) =>
logger.error(s"Unable to get user details $exception")
NewUserServiceError.UserNotFoundError.asLeft
}
}
}
object NewUserService {
sealed trait NewUserServiceError
object NewUserServiceError {
case object UserNotFoundError extends NewUserServiceError
case object InternalServerError extends NewUserServiceError
}
}
I get the connection refused error when i donot start my keycloak server at 8080 port. And when i start it on 8080 port i see user not found error. Please tell me what am i doing wrong.
Error:
Unable to get user details javax.ws.rs.ProcessingException: RESTEASY004655: Unable to invoke request: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:8080 [/127.0.0.1] failed: Connection refused
Unable to get user details javax.ws.rs.ProcessingException: javax.ws.rs.NotFoundException: HTTP 404 Not Found
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论