如何用Spring WebFlux返回404

我有一个这样的控制器(在Kotlin中): @RestController @RequestMapping(“/”) class CustomerController (private val service: CustomerService) { @GetMapping(“/{id}”) fun findById(@PathVariable id: String, @RequestHeader(value = IF_NONE_MATCH) versionHeader: String?): Mono<HttpEntity> = return service.findById(id) .switchIfEmpty(Mono.error(NotFoundException())) .map { // ETag stuff … ok().eTag(“…”).body(…) } } 我想知道是否有一个更好的方法比抛出一个exception是用@ResponseStatus(code = NOT_FOUND)注解@ResponseStatus(code = NOT_FOUND)

ErrorPageFilter – 无法转发到错误页面的请求

我经常在运行的服务器上看到这样的错误日志: 错误osboot.web.support.ErrorPageFilter – 由于响应已经提交,无法转发到请求[/ api / login]的错误页面。 因此,响应可能有错误的状态码。 如果您的应用程序在WebSphere Application Server上运行,则可以通过将com.ibm.ws.webcontainer.invokeFlushAfterService设置为false来解决此问题 我的服务器运行和开发环境: Ubuntu 14.04 Tomcat 8 Sprint Framework: 4.3.1 Sprint Boot: 1.5.9 Kotlin: 1.2.21 根据stackoverflow中的一个问题 ,我添加了下面的代码(转换为Kotlin代码)尝试删除此错误日志,但不起作用。 @SpringBootApplication @EnableScheduling @EnableAsync @EnableTransactionManagement open class MyApplication: SpringBootServletInitializer() { init { setRegisterErrorPageFilter(false) <<<< I added this func call to try fix } companion object { @JvmStatic fun main(args: Array) […]

Koitlin支持JPA静态元模型

当我使用Java JPA创建Entity类时,会生成静态元模型。 如果我将我的实体转换为Kotlin JPA静态元模型不会生成。 如何解决这个问题呢? 编辑 我正在使用Gradle作为构建工具。

如何使用moshi创建复杂的json而不需要定义类?

在gson中,我可以使用JsonElement来格式化一个复杂的json,像(在kotlin中): val objIDonotWantToDefine = JsonObject() objIDonotWantToDefine.addProperty(“objName”, “objIDonotWantToDefine”) val playerJsonArray = JsonArray() for ((name, age) in players) { val player = JsonObject() player.addProperty(“name”, name) player.addProperty(“age”, age) playerJsonArray.add(player) } objIDonotWantToDefine.add(“players”, playerJsonArray) val jsonStringIWant = GsonBuilder().create().toJson(objIDonotWantToDefine) 我知道我可以使用JSONWriter在莫西做到这一点。 但有没有一个简单的方法来做到这一点?

即使使用jackson-datatype-jsr310,Instant也不能被序列化为适当的格式

添加以下依赖项: compile(“com.fasterxml.jackson.module:jackson-module-parameter-names:2.8.9”) compile(“com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.8.9”) compile(“com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.8.9”) 我现在可以通过即时反序列化以下JSON: { “timestamp”: {{$timestamp}} } 到以下对象: Transaction(timestamp=2017-07-02T10:58:18Z) 用下面的类声明 data class Transaction(@NotNull val timestamp: Instant) 但是,当立即序列化后,我得到以下几点: { “timestamp”: 1498992172 } 我正在用Kotlin使用Spring Boot 。

对象的快速inheritance和接口的含义

我在Kotlin中find:Object文档的一个例子: open class A(x: Int) { public open val y: Int = x } interface B {…} val ab: A = object : A(1), B { override val y = 15 } 所以我用更有意义的名字实现了这个例子,我不知道在逗号分隔的超types列表之间的接口的原因是什么? interface Toy { fun play () { println(“Play, play….”) } } open class Ball(public open val color: String = “red”) {} val […]

如何比较Kotlin中的Short和Int?

我有一个Shortvariables,我需要检查的值。 但编译器抱怨说,当我做一个简单的equals检查时, Operator ‘==’ cannot be applied to ‘Short’ and ‘Int’ : val myShort: Short = 4 if (myShort == 4) // <– ERROR println("all is well") 那么最简单的“最干净的”方法是什么? 这里有一些我尝试过的东西(没有我喜欢,说实话)。 第一个投4个整数到一个短(看起来很奇怪,调用一个原始数字函数) val myShort: Short = 4 if (myShort == 4.toShort()) println(“all is well”) 下一个将short转换为int(不应该是必须的,现在我有两个int,当我不需要的时候) val myShort: Short = 4 if (myShort.toInt() == 4) println(“all is well”)

可以帮助使数组在Kotlin中只有奇数

我需要帮助。 我尝试使数组只与奇数,但我不想使用arraylist,因为我只想要数组。 像这样的输入数组:[1,2,3,4,5,6,7,8,9,10] 我试图得到奇数,只有像:[1,3,5,7,9] val array = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val arraylist = arrayListOf() for(i in 0..array.size – 1) { if(array[i] % 2 != 0) arraylist.add(array[i]) } val oddarray = arraylist.toArray()

在没有JVM支持的情况下,如何在JVM语言中实现协程?

在阅读Loom提案之后 ,提出了这个问题,该提议描述了使用Java编程语言实现协程的方法。 特别是这个建议说要在语言中实现这个function,将需要额外的JVM支持。 据我所知,JVM上已经有几种语言,它们的协同程序是Kotlin和Scala等function集的一部分。 那么如何在没有额外的支持的情况下实现这个function呢?

从字符串实例化一个函数?

我有一个函数定义在一个字符串,并需要一种方法来实例化它: val myFunction = “””fun (file:Int, rank:Int, playerHasWhite: Boolean): Boolean { val a = file + 3 val b = rank – 2 if (playerHasWhite) a>b else a<b } """ 那么,是否有一个简单的方法,通过reflection来实例化myFunction? (我注意到我可能需要jar kotlinreflection)