问一下一个关于 kotlin 的问题,最近刚上手,求大佬帮忙

2019-01-29 11:59:38 +08:00
 blackccc

最近项目重构,我原本写 java 的,被拉去写 kotlin,然后借口写完一直报下面的错,请求接口一直超时 { "code": 500, "message": "Timed out after waiting 30000(ms) for a reply. address: bb4e46a1-3cf2-4783-bbce-8a933a30b501, repliedAddress: com.byhealth.scrm.yygj.http.api.rank.GetAllPopupContents", "description": null } 求大佬看看,是什么问题

1709 次点击
所在节点    程序员
14 条回复
gz911122
2019-01-29 13:19:32 +08:00
看起来这个问题和 kotlin 毫无关系
unmois
2019-01-29 13:39:07 +08:00
这是 app 报的错还是服务器接口的错误?
blackccc
2019-01-29 13:40:33 +08:00
@unmois 服务接口
gz911122
2019-01-29 13:56:15 +08:00
@blackccc 项目框架是啥之类的简单介绍下啊
不然别人看着一个超时错误怎么帮你猜
hongch
2019-01-29 13:58:52 +08:00
问服务端这个 reponse 是什么意思
blackccc
2019-01-29 13:59:47 +08:00
@gz911122 框架用的是 vertx,我看他的错误是代理抛出来的,其实我也不是很懂 kotlin,写代码就复制粘贴,跟 java 还是有很大区别的,
我复制一下接口代码给你看看吧

/**
* 获取所有弹窗
* @author ccc
* @date 2019/1/28 14:43
*/
@API(path = "/yygj/rank/getAllPopupContents", method = "POST" )
class GetAllPopupContents(vertx: Vertx, eventZone: String) : AbstractRestHandler(vertx, eventZone) {

@Autowired
private lateinit var rankService: RankService

override fun handleRequest(resource: EBProxyResource) {
val json = resource.getBodyAsJson()

rankService.getAllPopupContents(json) {
if (it.succeeded()) {
resource.replyCheckNullJson(it.result())
} else {
resource.replyErrorJson(it.cause())
}
}
}
}
gz911122
2019-01-29 14:12:38 +08:00
@blackccc 如果是 vert.x 的话 ,。。你是不是阻塞主线程了?

你们什么公司啊。。还这么高级玩 vert.x。感觉国内这些 java 开发天天就知道 spring。。。
gz911122
2019-01-29 14:13:48 +08:00
@blackccc 如果你确认是 kotlin 问题的话你这个接口文件换成 java 写试试。我觉得跟 kotlin 没有任何关系。
再说 kt 很好上手啊。我也是 java 开发,看下 kotlin 官方文档就会写了。
micean
2019-01-29 14:18:35 +08:00
vertx 的 eventBus 请求某个 address 超时了
可能是那边没有捕获异常
blackccc
2019-01-29 14:20:45 +08:00
@gz911122 我觉得应该是我接口我问题吧,我访问其他接口没问题,不是互联网公司,就一个普通的上市公司,kt 还好吧,我都没接触过,而且项目都是写好的,我在上面写新功能,还是有点懵逼的
blackccc
2019-01-29 14:28:53 +08:00
@micean 我感觉请求都没进去,我用 postman 调试,一直在等响应,然后响应的都是抛出错误 500 超时
micean
2019-01-29 14:47:01 +08:00
先 debug 目标业务代码有没有调用,再检查 vertx 的封装有没有捕获异常并处理返回
blackccc
2019-01-29 14:49:20 +08:00
@micean 我 debug 失效了,打断点,不能用,我是用 debug 启动的
blackccc
2019-01-29 14:54:29 +08:00
@micean com.byhealth.scrm.apigateway.handler.proxy.EventBusProxyHandler.lambda$null$0(EventBusProxyHandler.java:96)
抛出了这个错,好像跟你说的 eventBus 有关

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/531514

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX