我正在尝试使用Spring 5的舍入函数,按照下面的代码
public class PersonHandler {
private final PersonRepository repository;
public PersonHandler(PersonRepository repository) {
this.repository = repository;
}
public Mono<ServerResponse> listPeople(ServerRequest request) {
System.out.println("List people");
Flux<Person> people = repository.findAll();
return ServerResponse.ok().contentType(APPLICATION_JSON).body(people, Person.class);
}
public Mono<ServerResponse> createPerson(ServerRequest request) {
System.out.println("Insert people");
Mono<Person> person = request.bodyToMono(Person.class);
repository.insert(person).subscribe();
return ServerResponse.ok().build();
}
public Mono<ServerResponse> getPerson(ServerRequest request) {
System.out.println("Get people");
String personName = request.pathVariable("name");
Mono<ServerResponse> notFound = ServerResponse.notFound().build();
Mono<Person> personMono = this.repository.findByName(personName);
return personMono
.flatMap(person -> ServerResponse.ok().contentType(APPLICATION_JSON).body(fromObject(person)))
.switchIfEmpty(notFound);
}
}
@Configuration
public class RoutesConfiguration {
@Bean
RouterFunction<?> routes(PersonRepository personRepository) {
PersonHandler handler = new PersonHandler(personRepository);
return nest(path("/person"),
nest(accept(APPLICATION_JSON),
route(GET("/{id}"), handler::getPerson)
.andRoute(method(HttpMethod.GET), handler::listPeople)
).andRoute(POST("/").and(contentType(APPLICATION_JSON)), handler::createPerson));
}
}
curl -X POST -d {"name":"John Doe","age":20} -H "Content-Type: application/json" http://localhost:8081/person
reactor.core.Exceptions$ErrorCallbackNotImplemented: org.springframework.web.server.UnsupportedMediaTypeStatusException: Response status 415 with reason "Con
tent type 'application/json' not supported"
Caused by: org.springframework.web.server.UnsupportedMediaTypeStatusException: Response status 415 with reason "Content type 'application/json' not supported
"
at org.springframework.web.reactive.function.server.DefaultServerRequest.lambda$static$0(DefaultServerRequest.java:66) ~[spring-webflux-5.0.0.RELEASE
.jar:5.0.0.RELEASE]
at reactor.core.publisher.Mono.lambda$onErrorMap$19(Mono.java:2354) ~[reactor-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at reactor.core.publisher.Mono.lambda$onErrorResume$21(Mono.java:2446) ~[reactor-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:88) ~[reactor-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at reactor.core.publisher.Operators.error(Operators.java:175) ~[reactor-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at reactor.core.publisher.MonoError.subscribe(MonoError.java:52) ~[reactor-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
就这样发生在我身上。我使用Maven并通过clearning我的m2缓存解决了这个问题:
rm -rf ~/.m2/repository/* (my .m2 folder is in my home directory)
然后运行MVN clean install
并重新启动应用程序,但没有收到异常。
我收到以下异常: 我的测试如下所示: BaseTest为:
我正在研究Java restful web服务。在测试restful服务时,GET和DELETE方法的响应是正确的,但POST和PUT方法不起作用。有人能帮我吗?我编写了以下代码:
我的服务器资源: 我的客户资源: 我的Build.Gradle文件:
当我在localhost:8080/api/users上做一个POST请求来创建一个新用户时,我会得到以下错误: 是请求的主体,选择JSON(应用程序/JSON)。即使我删除角色并将其保持为空,它也会给出相同的错误。 标题的内容类型也是application/json。 这是我的控制器: UserService中的createUser函数: 这是我的用户类:
这是我的课。当我使用带有有效json的邮递员访问该url时http://localhost:8090/user 我犯了一个错误 我试过这个https://stackoverflow.com/a/38252762/11369236 我不想像这里这样使用requestparam https://stackoverflow.com/a/43065261/11369236 一些答案建议使用 但spring
问题内容: 我正在尝试测试Keycloak REST API。安装了2.1.0.Final版本。我可以通过浏览器使用SSL访问管理员,而不会出现问题。 我正在使用上面的代码: 并得到错误: 我在上面添加了依赖项,但不能解决我的问题: 有什么线索吗? 问题答案: 我解决了!您必须将org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson