错误:javax.ws.rs.notfoundexception:http 404找不到

发布于 2025-02-06 20:51:50 字数 3257 浏览 1 评论 0原文

我正在尝试测试使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文