Maven Keycloak library wirft exceptions nach maven package

bob_sheknowdas

Aktives Mitglied
Hi,

ich habe mit der java Keycloak libarary ein bisschen Code geschrieben.
Der läuft in Eclipse problemlos. Wenn ich aber ein jar-File erzeuge, fliegen Exceptions...

Hier der Code (senden von Benutzernamen und Passwort an Keycloak und empfangen eines JWT)
Java:
import org.keycloak.OAuth2Constants;
import org.keycloak.admin.client.Keycloak;
import org.keycloak.admin.client.KeycloakBuilder;
import org.keycloak.representations.AccessTokenResponse;

public class ServiceMainClass {

    public static void main(String[] args) {

        String jwt = retrieveJWT();
        System.out.println(jwt);

    }

    private static String retrieveJWT() {
        Keycloak keycloak = KeycloakBuilder.builder() //
                .realm("VertxTestRealm") //
                .serverUrl("http://localhost:8085/auth")//
                .clientId("VertxTestClient") //
                .clientSecret("f230275b-61e8-4d5f-8bbd-276a77a1d5f1") //
                .username("MeinName") //
                .password("MeinPasswort") //
                .grantType(OAuth2Constants.PASSWORD).build();

        AccessTokenResponse tokenResponse = keycloak.tokenManager().getAccessToken();
        String token = tokenResponse == null ? null : tokenResponse.getToken();
        return token;
    }

}

Die Exception sieht so aus:
Java:
Exception in thread "main" javax.ws.rs.client.ResponseProcessingException: javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse
        at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:158)
        at org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:60)
        at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104)
        at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
        at com.sun.proxy.$Proxy15.grantToken(Unknown Source)
        at org.keycloak.admin.client.token.TokenManager.grantToken(TokenManager.java:89)
        at org.keycloak.admin.client.token.TokenManager.getAccessToken(TokenManager.java:69)
        at playarounds.ServiceMainClass.retrieveJWT(ServiceMainClass.java:45)
        at playarounds.ServiceMainClass.main(ServiceMainClass.java:15)
Caused by: javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse
        at org.jboss.resteasy.core.interception.ClientReaderInterceptorContext.throwReaderNotFound(ClientReaderInterceptorContext.java:42)
        at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.getReader(AbstractReaderInterceptorContext.java:80)
        at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53)
        at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:324)
        at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readEntity(ClientResponse.java:251)
        at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:231)
        at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:122)
        ... 8 more

Hier nochmal meine pom.xml

HTML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"[/SIZE][/SIZE][/SIZE][/SIZE]
[SIZE=1][SIZE=4][SIZE=1][SIZE=4]  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>ChangeService</groupId>
  <artifactId>change-service</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.keycloak</groupId>
       <artifactId>keycloak-admin-client</artifactId>
       <version>4.5.0.Final</version>
     </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
       <version>2.8.11.1</version>
     </dependency>
     <dependency>
       <groupId>org.jboss.resteasy</groupId>
       <artifactId>resteasy-client</artifactId>
       <version>3.5.1.Final</version>
     </dependency>
     <dependency>
       <groupId>org.jboss.resteasy</groupId>
       <artifactId>resteasy-jackson2-provider</artifactId>
       <version>3.5.1.Final</version>
     </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
         <version>3.2.0</version>
         <executions>
          <execution>
              <phase>package</phase>
             <goals>
               <goal>shade</goal>
             </goals>
             <configuration>
               <filters>
                 <filter>
                    <artifact>*:*</artifact>
                    <excludes>
                      <exclude>META-INF/*.SF</exclude>
                      <exclude>META-INF/*.DSA</exclude>
                      <exclude>META-INF/*.RSA</exclude>
                    </excludes>
                 </filter>
               </filters>
               <transformers>
                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                   <manifestEntries>
                     <Main-Class>playarounds.ServiceMainClass</Main-Class>
                   </manifestEntries>
                 </transformer>
               </transformers>
               <artifactSet/>
               <outputFile>${project.build.directory}/${project.artifactId}-${project.version}-fat.jar</outputFile>
             </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
 

Zurück
Oben