转发后已为此响应调用了 Spring Boot 错误 getOutputStream(

我目前正在开发一个 Spring Boot 应用程序。我为 httpBasic 身份验证实现了 Spring Boot 安全性。身份验证成功后,我的自定义过滤器方法会被调用。


protected void onSuccessfulAuthentication(javax.servlet.http.HttpServletRequest request,

        javax.servlet.http.HttpServletResponse response, Authentication authResult) throws IOException {

Iterator<? extends GrantedAuthority> it = authResult.getAuthorities().iterator();

        switch (it.next().getAuthority()) {

        case (MyConstants.ROLE_USER): {

            try {

                request.getRequestDispatcher("/user/data").forward(request, response);  break;

        } catch (ServletException e1) {

            // TODO Auto-generated catch block

            e1.printStackTrace();

        }

所以我想将我需要的带有 JSON 数据的 rquest 对象转发到我的 RestController 端点。这有效。在我的控制器中,我想返回带有数据和 Http 状态代码的 ResponseEntity。


@RequestMapping(value="/upload", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)

public ResponseEntity< HttpStatus> upload(@RequestBody String uploadData){


    ResponseEntity<String> httpStatus = sendExchangeToRestApi(MediaType.APPLICATION_JSON, uploadData,

            "http://localhost:8080/upload", HttpMethod.PUT);

    return new ResponseEntity<String>("Test". HttpStatus.OK);


}

我用邮递员测试了这个。输出没问题,所以我在我的身体输出中得到状态 200 和测试。


冉冉说
浏览 255回答 1
1回答

慕村225694

你应该知道的一件事是,每个微服务都应该有自己的数据库,如果你所有的微服务共享同一个数据库,那么数据库将成为你的中心合约,并且总是很难做出改变,因为你永远不知道哪个微服务使用什么。谈到RabbitMQ,我个人认为它是有史以来最好的Message-Broker。我建议您拥有一个队列/微服务和一个 Exchange/微服务。您可以轻松配置 RabbitMQ 以根据路由键在队列之间重定向消息。希望这有助于最好的敬意
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java