SpringBoot 项目部署到线上问题

SpringBoot 项目 和 Vue 项目 线上环境出现的问题

线下部署可以获取到 request.getQueryString() 得到的值,
而部署到线上的时候,就获取到的是 null,观察线上环境,发现 Connection 为 Connection: close,而访问其它网站页面是 Connection : keep-alive,这是怎么回事?怎么线下到线上就出现这种 bug 啦

相关代码:

@GetMapping("/search")
    public BaseResponse<List<User>> searchUsers(@RequestParam Map<String, String> map, HttpServletRequest request) throws IOException, ExecutionException {

        String ipAddr = IPUtil.getIpAddr(request);
        RateLimiter limiter = userService.getIPLimiter(ipAddr);

        Object userObj = request.getSession().getAttribute(USER_LOGIN_STATE);
        User role = (User) userObj;
        if (role == null) {
            throw new BusinessException(ErrorCode.PARAMS_ERROR, "登录已失效!请刷新后重新登录");
        }
        if (role.getUserRole() == 0 || role.getUserRole() > 4 || role.getUserRole() == null) {
            throw new BusinessException(ErrorCode.NO_AUTH);
        }

        String aa = request.getQueryString();
        System.out.println("aa:" + aa);
        // aa = http://81.70.51.139/juniorAdmin/basis?current=1&pageSize=5
        // aa=http://www.jidianyunguanjia.com/juniorAdmin/epidemic?current=1&pageSize=5
        String referer = request.getHeader("referer");

//        String aa = referer.substring(referer.lastIndexOf("?") + 1, referer.length());
        String[] bb = aa.split("&");
        // bb[0] = current=1
        // bb[1] = pageSize5
        String cc = null;
        String[] dd = null;
        String key = null;
        String value = null;
        String str = "%";// %E4%B8%AD%E6%96%87 对中文—>转码
        map = new HashMap<String, String>();
        for (int i = 0; i < bb.length; i++) {
            cc = bb[i];
            dd = cc.split("=");
            key = dd[0];
            if (dd[1] != null) {
                value = dd[1];
            } else {
                value = null;
            }
            boolean contains = str.contains(value); // true 存在中文乱码
            if (!contains) {// false
                value = URLDecoder.decode(value, "utf-8");
            }
            MAP = map;
            // 把 pageSize 和 5 放入到 map 中, 以键值对的形式存放
            map.put(key, value);
        }
        System.out.println("cc====" + cc);
        System.out.println("====bb======");
        for (String s : bb) {
            System.out.println("bb:" + s);
        }
        System.out.println("======dd=======");
        for (String s : dd) {
            System.out.println("dd:" + s);
        }

        QueryWrapper<User> queryWrapper = userService.searchUsers(map);
        List<User> userList = userService.list(queryWrapper);
        List<User> list = userList.stream().map(user -> userService.getSafetyUser(user)).collect(Collectors.toList());
        List<User> getList = userService.dataAccess(list, request);
        if (getList.size() == 0) {
            throw new BusinessException(ErrorCode.PARAMS_ERROR, "您搜索的信息不存在");
        }
//        if (!HandleReferer.handleReferer(referer)) {
//            return null;
//        }
        List<User> handleList = HandleReferer.handleList(getList);
        return ResultUtils.success(handleList);
    }

具体遇到什么问题了你可以啊 嗯,不知道,不知道,记事本里边发给我

代码相同的情况下,注意排查配置信息是否相同,应该是配置不同导致的。

服务的运行环境和本地的不一致,这个只能检查相应的环境,另外你的问题描述的不够清除,看不出来具体的问题

如果我没看错的话线上和本地不是同一套代码,输出格式都不一样