java - 由于 "unknown resource",无法通过 keycloak-admin-client 将用户添加到 Keycloak

标签 java client admin keycloak

我尝试在 Java 代码中使用 keycloak-admin-client,如下所示,然后出现异常。从异常情况来看,它似乎在构建 API URL 时失败了,甚至在到达 Keycloak 之前也是如此。有人知道为什么会发生这种情况吗?

我正在 Docker 容器内运行 Keycloak,并公开端口 8078。

public static void main(String ... args) {
        Keycloak kc = KeycloakBuilder.builder()
                .serverUrl("http://localhost:8078/auth")
                .realm("master")
                .username("admin")
                .password("admin")
                .clientId("admin-cli")
                .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build())
                .build();
        CredentialRepresentation credential = new CredentialRepresentation();
        credential.setType(CredentialRepresentation.PASSWORD);
        credential.setValue("test123");
        UserRepresentation user = new UserRepresentation();
        user.setUsername("testuser");
        user.setFirstName("Test");
        user.setLastName("User");
        user.setEnabled(true);
        user.setCredentials(Arrays.asList(credential));
        kc.realm("master").users().create(user);
}

异常(exception):

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoSuchMethodError: javax.ws.rs.core.UriBuilder.resolveTemplates(Ljava/util/Map;)Ljavax/ws/rs/core/UriBuilder;
    at org.jboss.resteasy.client.jaxrs.internal.ClientWebTarget.resolveTemplates(ClientWebTarget.java:158)
    at org.jboss.resteasy.client.jaxrs.internal.proxy.SubResourceInvoker.invoke(SubResourceInvoker.java:65)
    at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
    at com.sun.proxy.$Proxy39.realm(Unknown Source)
    at org.keycloak.admin.client.Keycloak.realm(Keycloak.java:71)
    at com.gallagher.security.keycloak.client.Program.main(Program.java:76)

最佳答案

Caused by: java.lang.NoSuchMethodError: javax.ws.rs.core.UriBuilder.resolveTemplates(Ljava/util/Map;)Ljavax/ws/rs/core/UriBuilder;    

此错误通常表明路径上有该类的 2 个版本。
如果您使用像 Maven 这样的依赖框架,您可以验证层次结构中是否包含正确的库
这个类 - “javax.ws.rs.core.UriBuilder”

关于java - 由于 "unknown resource",无法通过 keycloak-admin-client 将用户添加到 Keycloak,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38320163/

相关文章:

java - 未知崩溃

python 将输出命令发送到客户端套接字

linux - telnet 127.0.0.1 peer 不是 127.0.0.1

wordpress - 更新后 WP-Admin 中的 Javascript 失败

java - 判断字符串是否为十六进制数的递归方法 - Java

包含管道和换行符的Java Split字符串

java - GroovyClassLoader 加载的类未列出

shell - 为什么 Tmux 有服务器?有什么好处?

javascript - 我可以通过 Javascript 建立套接字连接吗

java - 以管理员权限打开jar文件