2016-07-12 19 views
1

我试图在下面的Java代码中使用keycloak-admin-client,然后出现异常。从例外情况看,它看起来在构建API URL时失败了,甚至在达到Keycloak之前。有人知道为什么会发生这种情况吗?由于“未知资源”导致keycloak-admin-client向Keycloak添加用户失败

我是一个码头工人容器中运行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); 
} 

例外:

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) 

回答

2
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”

+0

感谢杰里米,是的,你是对的,在类被其他一些依赖包括在内。问题已得到解决。 –

相关问题