Java RESTEASY003145:找不到内容类型为application/json且类型为org.keydape.representations.AccessTokenResponse的MessageBodyReader
我正在尝试测试keydeporestapi。 安装了2.1.0.Final版。 我可以访问管理员通过浏览器与SSL没有问题 我正在使用上面的代码:Java RESTEASY003145:找不到内容类型为application/json且类型为org.keydape.representations.AccessTokenResponse的MessageBodyReader,java,jackson,resteasy,keycloak,Java,Jackson,Resteasy,Keycloak,我正在尝试测试keydeporestapi。 安装了2.1.0.Final版。 我可以访问管理员通过浏览器与SSL没有问题 我正在使用上面的代码: Keycloak keycloakClient = KeycloakBuilder.builder() .serverUrl("https://keycloak.intra.rps.com.br/auth") .realm("testrealm") .username("development") .password("development") .
Keycloak keycloakClient = KeycloakBuilder.builder()
.serverUrl("https://keycloak.intra.rps.com.br/auth")
.realm("testrealm")
.username("development")
.password("development")
.clientId("admin-cli")
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build())
.build();
List<RealmRepresentation> rr = keycloakClient.realms().findAll();
我添加了上述依赖项,但没有解决我的问题:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.19.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>3.0.19.Final</version>
</dependency>
org.jboss.resteasy
resteasy客户端
3.0.19.1决赛
org.jboss.resteasy
resteasy jackson提供商
3.0.19.1决赛
有什么线索吗?我解决了!!
您必须将org.jboss.resteasy.plugins.providers.jackson.ResteasyJacksonProvider添加到META-INF/services/javax.ws.rs.ext.providers文件中,然后运行您的可执行jar。我使用依赖项解决了这个问题
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>3.1.0.Final</version>
</dependency>
org.jboss.resteasy
resteasy-jackson2-provider
3.1.0.1最终版本
或者,如果使用代理创建客户端,则最好在以下操作之前初始化提供程序工厂:
ResteasyProviderFactory instance=ResteasyProviderFactory.getInstance();
RegisterBuiltin.register(instance);
instance.registerProvider(ResteasyJackson2Provider.class);
添加“为我做什么”会导致以下警告:
WARN: RESTEASY002155: Provider class org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider is already registered. 2nd registration is being ignored.
可能只需添加依赖项即可自动注册提供程序:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
org.jboss.resteasy
resteasy-jackson2-provider
${resteasy.version}
我有问题,这就指出了。我用maven shade插件和Transforms标签解决了这个问题。也许这对某人有帮助
<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>de.example.MainClass</Main-Class>
<X-Compile-Source-JDK>1.8</X-Compile-Source-JDK>
<X-Compile-Target-JDK>1.8</X-Compile-Target-JDK>
</manifestEntries>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/services/javax.ws.rs.ext.Providers</resource>
</transformer>
</transformers>
<artifactSet/>
<outputFile>${project.build.directory}/${project.artifactId}-${project.version}-fat.jar</outputFile>
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven阴影插件
3.2.0
包裹
阴凉处
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
de.example.main类
1.8
1.8
META-INF/services/javax.ws.rs.ext.Providers
${project.build.directory}/${project.artifactId}-${project.version}-fat.jar
在wildfly 11/KeyClope上下文中,以下内容使其与RestEasyClientBuilder
一起工作
ResteasyClientBuilder builder = new ResteasyClientBuilder();
ResteasyProviderFactory providerFactory = ResteasyProviderFactory.getInstance();
builder.providerFactory(providerFactory);
再次检查Resteasy版本是否默认为true
。如果没有,请手动设置内置项:
ResteasyProviderFactory.setRegisterBuiltinByDefault(true);
// or if ResteasyProviderFactory was already instantiated
RegisterBuiltin.register(providerFactory);
在我的例子中,我将根本问题追溯到切换到
CompletableFuture
所使用的客户机版本可能已经过时或是其他什么东西,当它在eclipse中工作时,从外部可执行文件中崩溃,并出现此错误
我可能会发布一个修复程序,但它要么是:更新库,要么停止在此库上使用CompletableFuture。您解决了吗?我收到了同样的信息…你解决了吗?可能重复或org.jboss.resteasy.plugins.providers.jackson.resteasyjackson2provider使用maven时你有解决方案吗?同样的问题。我已经在pom中添加了resteasy-jackson2-provider,但仍然存在这个问题。你的答案的第一部分救了我一周。非常感谢!如果可能的话,也可以从Resteasy切换到其他功能
ResteasyProviderFactory.setRegisterBuiltinByDefault(true);
// or if ResteasyProviderFactory was already instantiated
RegisterBuiltin.register(providerFactory);