V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blackccc
V2EX  ›  程序员

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

  •  1
     
  •   blackccc · 2019-01-29 11:59:38 +08:00 · 1715 次点击
    这是一个创建于 2126 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近项目重构,我原本写 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 } 求大佬看看,是什么问题

    14 条回复    2019-01-29 14:54:29 +08:00
    gz911122
        1
    gz911122  
       2019-01-29 13:19:32 +08:00
    看起来这个问题和 kotlin 毫无关系
    unmois
        2
    unmois  
       2019-01-29 13:39:07 +08:00
    这是 app 报的错还是服务器接口的错误?
    blackccc
        3
    blackccc  
    OP
       2019-01-29 13:40:33 +08:00
    @unmois 服务接口
    gz911122
        4
    gz911122  
       2019-01-29 13:56:15 +08:00
    @blackccc 项目框架是啥之类的简单介绍下啊
    不然别人看着一个超时错误怎么帮你猜
    hongch
        5
    hongch  
       2019-01-29 13:58:52 +08:00
    问服务端这个 reponse 是什么意思
    blackccc
        6
    blackccc  
    OP
       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
        7
    gz911122  
       2019-01-29 14:12:38 +08:00
    @blackccc 如果是 vert.x 的话 ,。。你是不是阻塞主线程了?

    你们什么公司啊。。还这么高级玩 vert.x。感觉国内这些 java 开发天天就知道 spring。。。
    gz911122
        8
    gz911122  
       2019-01-29 14:13:48 +08:00   ❤️ 1
    @blackccc 如果你确认是 kotlin 问题的话你这个接口文件换成 java 写试试。我觉得跟 kotlin 没有任何关系。
    再说 kt 很好上手啊。我也是 java 开发,看下 kotlin 官方文档就会写了。
    micean
        9
    micean  
       2019-01-29 14:18:35 +08:00
    vertx 的 eventBus 请求某个 address 超时了
    可能是那边没有捕获异常
    blackccc
        10
    blackccc  
    OP
       2019-01-29 14:20:45 +08:00
    @gz911122 我觉得应该是我接口我问题吧,我访问其他接口没问题,不是互联网公司,就一个普通的上市公司,kt 还好吧,我都没接触过,而且项目都是写好的,我在上面写新功能,还是有点懵逼的
    blackccc
        11
    blackccc  
    OP
       2019-01-29 14:28:53 +08:00
    @micean 我感觉请求都没进去,我用 postman 调试,一直在等响应,然后响应的都是抛出错误 500 超时
    micean
        12
    micean  
       2019-01-29 14:47:01 +08:00   ❤️ 1
    先 debug 目标业务代码有没有调用,再检查 vertx 的封装有没有捕获异常并处理返回
    blackccc
        13
    blackccc  
    OP
       2019-01-29 14:49:20 +08:00
    @micean 我 debug 失效了,打断点,不能用,我是用 debug 启动的
    blackccc
        14
    blackccc  
    OP
       2019-01-29 14:54:29 +08:00
    @micean com.byhealth.scrm.apigateway.handler.proxy.EventBusProxyHandler.lambda$null$0(EventBusProxyHandler.java:96)
    抛出了这个错,好像跟你说的 eventBus 有关
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5897 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:35 · PVG 11:35 · LAX 19:35 · JFK 22:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.