小编Jue*_*ann的帖子

如何在Spring Boot 2(带有WebFlux)中为HTTP和HTTPS配置两个端口?

谁能告诉我使用Spring Boot 2和WebFlux时如何配置2个端口(用于HTTP和HTTPS)?任何提示表示赞赏!

spring-boot spring-webflux

5
推荐指数
2
解决办法
1955
查看次数

Spring REST 文档:如何将规则迁移到 JUnit 5

我将 Spring 测试迁移到 JUnit 5,它们运行良好。但是,我不知道如何迁移@Rule public JUnitRestDocumentation restDocumentation = ...。任何提示表示赞赏。

junit junit4 spring-restdocs junit5 junit-jupiter

4
推荐指数
1
解决办法
2424
查看次数

Spring Boot 2.0.0.M1:包org.springframework.boot.context.embed在哪里?

春季启动1.5.3.RELEASE有几类org.springframework.boot.context.embed,并在子包jetty,tomcatundertow.但是,https://github.com/spring-projects/spring-boot/tree/v2.0.0.M1/spring-boot/src/main/java/org/springframework/boot/context不再包含子目录embed.

课程在哪里TomcatEmbeddedServletContainerFactory消失了?

spring spring-boot

4
推荐指数
1
解决办法
9215
查看次数

如何使用Spring WebFlux获取“身份验证”对象?

使用SpringMVC和Spring Security,我可以实现一个像这样的Controller(在Java中):

@RestController
@RequestMapping("/auth")
class AuthController {
    private final AuthService authService;

    AuthController(AuthService authService) {
        this.authService = authService;
    }

    @GetMapping("/roles")
    Collection<String> findRoles(Authentication authentication) {
        final Object principal = authentication.getPrincipal();
        ...;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在使用Spring WebFlux和Spring Security(包括反应性部件)时,我基本上如何org.springframework.security.core.Authentication处理程序类(或服务类)中注入对象?

spring-security spring-webflux

3
推荐指数
1
解决办法
2242
查看次数

CNFE从6.0升级到6.1-RC1后

我正在使用Gradle 3.1和SonarQube 2.1的Gradle插件.当我gradle sonarqube使用SonarQube 6.0和适用于Java 4.2的SonarQube插件运行时,一切都按预期工作.但是,当我将SonarQube升级到6.1-RC1时,我得到以下堆栈跟踪:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':sonarqube'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:233)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:74)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:55)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.cpd.deprecated.DefaultCpdBlockIndexer
        at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:69)
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
        at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
        at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
        at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
        at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
        at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
        at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
        at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
        at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
        at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
        at org.picocontainer.DefaultPicoContainer.getLocalInstance(DefaultPicoContainer.java:606)
        at …
Run Code Online (Sandbox Code Playgroud)

gradle sonarqube sonarqube-scan

2
推荐指数
1
解决办法
285
查看次数

使用功能性 Webflux 上传文件

我正在使用“Router Kotlin DSL”对向 Spring WebFlux(和 Spring Boot)的功能变体的迁移进行原型设计。现在我需要一些使用 MIME 类型上传文件的提示,multipart/form-data而不是PUT使用application/json.

当我定义一个简单的路由器函数和这样的处理程序时,我得到下面的堆栈跟踪:

fun routes(handler: MultimediaHandler) = router {
    (accept(MediaType.MULTIPART_FORM_DATA) and "/multimedia").nest {
        PUT("/{id}", handler::upload)
    }
}
class MultimediaHandler {
    fun upload(request: ServerRequest): Mono<ServerResponse> {
        val id = request.pathVariable("id")
        return noContent().build()
    }
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

13:43:29.713 ERROR [i.u.request] [XNIO-1 I/O-3] UT005071: Undertow request failed HttpServerExchange{ PUT /multimedia/00000000-0000-0000-0000-000000000
001 request {Connection=[Keep-Alive], Accept-Encoding=[gzip,deflate], Content-Length=[1672], Content-Type=[multipart/form-data; boundary=-mJAzUqZoGk2nc
N1Rch4O4-KGbTExkAmQ7A], User-Agent=[Apache-HttpClient/4.5.2 (Java/1.8.0_144)], Host=[localhost:8444]} response {}}
java.lang.IllegalStateException: No multipart HttpMessageReader.
        at org.springframework.web.server.adapter.DefaultServerWebExchange.lambda$initMultipartData$3(DefaultServerWebExchange.java:144) ~[spring-web-5.0.0.RC3.jar:5.0.0.RC3]
        at …
Run Code Online (Sandbox Code Playgroud)

spring-mvc spring-boot spring-web spring-webflux

2
推荐指数
1
解决办法
3127
查看次数