Spring 5のルータ機能を使用するSpring Restコントローラを持つ Postmanクライアントを使用して要求を行うと、すべて正常に動作します。 しかし、Angular 4アプリケーションである別の原点から要求を行うと、この例外が発生します。Spring 5「No LookupPath属性」例外
java.lang.IllegalStateException:LookupPath属性がありません。 at org.springframework.web.server.support.LookupPath.lambda $ getCurrent $ 1(LookupPath.java:106)〜[spring-web-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT] java.util.Optional.orElseThrow(Optional.java:290)〜[na:1.8.0_72] at org.springframework.web.server.support.LookupPath.getCurrent(LookupPath.java:106)〜[spring-web -5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT] at org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource.getCorsConfiguration(UrlBasedCorsConfigurationSource.java:84)〜[spring-web-5.0.0] .BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT] at org.springframework.web.reactive.handler.AbstractHandlerMapping.lambda $ getHandler $ 1(AbstractHandlerMapping.java:163)〜[spring-webflux-5.0.0。 BUILD-SNAPSHOT.jar:5.0.0.BUILD-SNAPSHOT]
@RestController
public class AdminRest {
public RouterFunction<ServerResponse> route() {
return RouterFunctions
.route(RequestPredicates.GET("/admin/orgnaizationUsers"), this::getOrgnaizationUsers)
}
private Mono<ServerResponse> getOrgnaizationUsers(ServerRequest request) {
return Mono
.just(request)
.then(
Flux.from(organizationUserPostgresCollection.executeQuery("SELECT * FROM organization_user"))
.map(OrganizationUserDTO::convert)
.collectList()
.map(OrganizationUsersDTOView::new))
.flatMap(
organizationUsersDTOView -> ServerResponse.ok().header("Access-Control-Allow-Origin", "*")
.body(Mono.just(organizationUsersDTOView), OrganizationUsersDTOView.class))
.switchIfEmpty(ServerResponse.notFound().header("Access-Control-Allow-Origin", "*").build());
}
}
UrlBasedCorsConfigurationSourceは、それが初期化されている前LookupPathを取得しようとすると、問題が発生しているようです https://github.com/spring-projects/spring-framework/commit/cf1bc8119999e2bf3f41ae572f5b83536685ce5e
は私のだろうが、 '' @ Configuration'クラスの '@ Bean'方法もRouterFunction'べきではないのですか? –
すでに存在します。 '@ConfigurationパブリッククラスRESTConfiguration { @Bean公共RouterFunction adminRoute(AdminRest adminRest){ 戻りadminRest.route()。 } } ' –