【问题标题】:I am trying to POST a JSON array to a spring-boot controller but nothing happens or even shows up in the logs我正在尝试将 JSON 数组发布到 spring-boot 控制器,但没有任何反应,甚至没有出现在日志中
【发布时间】:2022-12-06 07:40:05
【问题描述】:

问题:我正在尝试将数组发布到控制器,但似乎什么也没发生,日志或终端上没有任何信息

我有一个 JSON 数组如下


[
    {   
        "artifact_id": 10,
        "session_id":45,
        "user_id": "user99"
    }
]

我正在尝试将它与我的 CRUD 存储库中的 .saveAll() 一起使用,但似乎什么也没发生,它甚至似乎没有打印我的 System.out.print("test");信息。 我的@Entity类如下

@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "ESearch_results", schema = "public")
public class ESearchResponse {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "primary_key", nullable = false)
    int primary_key;

    @Column(name = "artifact_id")
    int artifact_id;

    @Column(name = "session_id")
    int session_id;

    @Column(name = "user_id")
    String user_id;
}

我的控制器如下

@RestController
public class EsearchTestController {
    @Autowired
    private EsearchResponseService EsearchResponseService;
    
    @CrossOrigin
    @PostMapping("/justATest")
    public String testController(@RequestBody List<ESearchResponse> ESearchResponseTypo){
        String result = "this test passed";

        // System.out.print("\u001B[35m"+EsearchResponseService.saveESearchResult(ESearchResponseTypo));
        System.out.print("\u001B[35m"+ESearchResponseTypo.size());
        EsearchResponseService.saveESearchResult(ESearchResponseTypo);
        return result;
    }
}

我已经尝试了很多东西,我相信我的根本问题是我在请求正文中传递 JSON 数组的方式。

【问题讨论】:

  • 你做了一些调试吗?如果你有任何错误,你能发帖吗?日志是什么?它到达数据库了吗?您是否尝试过先从数据库加载值?拜托,你能在编写 Java 代码时坚持 Java 标准吗?请对变量名使用驼峰式大小写
  • 你得到什么响应代码?
  • 你做了一些调试吗?我已经完成了一些调试,但只有系统输出消息并且没有输出,我的实际调试器出于某种原因不想启动,但这是另一个问题,如果您遇到任何错误,请发帖?当我尝试发布到端点时没有错误事实上没有任何类型的消息它甚至返回没有响应但 200 状态日志是什么?日志不包含任何有意义的消息,只有 2 行表明服务器已从端点启动,是的,我可以从数据库中检索,我对代码感到抱歉,我还是新手
  • @rascio 我得到一个 200 OK 代码但没有响应,它应该响应“此测试通过”但没有响应
  • 我收到的唯一消息是,只有当我最初尝试 POST 到端点时,我收到这条消息2022-12-05 13:52:37.845 | INFO [,0881ade71a92186a,0881ade71a92186a] | Thread Id : http-nio-8080-exec-1 | Process ID : 31928 | o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' 2022-12-05 13:52:37.847 | INFO [,0881ade71a92186a,0881ade71a92186a] | Thread Id : http-nio-8080-exec-1 | Process ID : 31928 | o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'(由于字符限制无法发布其余消息,但它不多)

标签: java json spring spring-boot rest


【解决方案1】:

尝试将 @RequestMapping("/some_path") 添加到您的控制器。

我曾经遇到过同样的问题,在我的案例中是缺少 @RequestMapping 注释。

并注意properties 文件中的端口设置:

server.port=8000

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 2019-10-12
    • 1970-01-01
    • 2018-08-23
    • 2020-04-11
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多