Khắc phục sự cố

Kiểm tra lần lượt cài đặt và hình dạng mã hỗ trợ khi không có tệp được tạo hoặc thiếu route/type.


Thứ tự xác nhận

• Kiểm tra xem @Profile("local") có nằm trong profile thực thi hay không.

• Kiểm tra xem ngoại lệ của runner.start() có xảy ra trong console local hay không.

• Kiểm tra xem rootPath, routerPackage, entityPackage, handlerOutputDir có ở vị trí đúng sau khi chuyển đổi dấu chấm/dấu gạch chéo hay không.

• Kiểm tra xem thư mục nguồn được tạo có nằm trong bộ nguồn của IDE và công cụ build hay không.

• Thêm loại mô-đun chung bên ngoài vào class decompile jar hoặc classpath nguồn.

• Kiểm tra xem RouterFunction có ở dạng route/nest fluent và tham chiếu phương thức handler hay không.

Đường dẫn dot và đường dẫn slash

Cấu hình chuẩn hóa . thành / trong nhiều đầu vào path. Có thể trộn lẫn chuỗi package và đường dẫn filesystem, nhưng cần kiểm tra sự khác biệt giữa cấu hình đưa toàn bộ đường dẫn output như src.main.java.com.example... và cấu hình chỉ đưa package com.example....

Tái hiện cấu hình đường dẫn

java
import com.byeolnaerim.watch.route.HandlerGenerator;

var handlerConfig = HandlerGenerator.Config.builder()
    .rootPath("src/main/java")
    .routerPackage("com.example.web.router")
    .handlerPackage("com.example.web.handler")
    .handlerOutputDir("src/main/java/com/example/web/handler")
    .build();

System.out.println(handlerConfig.routerDir());
// src/main/java/com/example/web/router/

Chạy từ thư mục gốc dự án và kiểm tra routerDir được in ra có chứa mã nguồn router. Nếu routerPackage chứa cả src/main/java, đường dẫn sẽ bị lặp. Truyền cấu hình này vào handlerConfig của runner, rồi chạy với profile local trong Quick Start. handlerPackage là tên package Java; handlerOutputDir là thư mục đầu ra thực tế.

bash
test -d src/main/java/com/example/web/router
find src/main/java/com/example/web/handler -name '*.java'
# Quick Start swaggerOutputFile:
test -s src/main/resources/static/swagger.json

Nếu đường dẫn đúng nhưng không có đầu ra, hãy kiểm tra ngoại lệ đầu tiên từ runner.start(). Tái hiện bằng một tuyến tối thiểu có tham chiếu handler::method, kiểm tra tệp sinh ra rồi thêm các tuyến hiện có. Chỉ có swagger.json là chưa đủ: hãy đối chiếu đường dẫn yêu cầu và phương thức HTTP trong paths với hợp đồng phản hồi thực tế.

Tái tạo vô hạn

Swagger writer chỉ ghi tệp khi nội dung thay đổi. Nếu vẫn xảy ra generation lặp lại, hãy kiểm tra xem tệp output có nằm trong watchDirectory hay không, và xem formatter hoặc watcher khác có liên tục thay đổi nguồn đã tạo hay không.

Giới hạn phân tích tĩnh

© 2026 Byeolnaerim. Bảo lưu mọi quyền.Giới thiệuChính sách xử lý thông tin cá nhân