Trong mô-đun play-swagger
, chúng tôi sử dụng play.routes.compiler.RoutesFileParser
để có được tất cả các tuyến đã đăng ký khỏi Play và tiếp tục phân tích chúng vào một tài liệu API:Lập trình các tuyến đường trong Play! Khung 2.5.x
val parsedRoutes = RoutesFileParser.parse(new File(app.classloader.getResource(routesFile).toURI))
val routes = parsedRoutes.right.get.collect {
case (route: PlayRoute) => {
logger.debug(s"Adding route '$route'")
Seq(route.copy(path = route.path.copy(parts = StaticPart(prefix + "/") +: route.path.parts)))
}
case (include: PlayInclude) => {
logger.debug(s"Processing route include $include")
parseRoutesHelper(playRoutesClassNameToFileName(include.router), include.prefix)
}
}.flatten
Điều này dẫn đến các lỗi sau: java.lang.NoClassDefFoundError: play/routes/compiler/RoutesFileParser
Có vẻ như là RoutesFileParser
đã trở thành riêng tư trong Play! 2.5.
Cách chính xác để tìm nạp tất cả các tuyến đường như trong ví dụ trên là gì?
Tôi đã kiểm tra lịch sử git của RoutesFileParser và tôi không tìm thấy bất kỳ thay đổi quan trọng nào từ 2.4.0. Đối tượng được công khai với phương thức phân tích công khai và lớp là riêng tư vì nó là để chơi 2.4.0. https://github.com/playframework/playframework/commits/master/framework/src/routes-compiler/src/main/scala/play/routes/compiler/RoutesFileParser.scala Đây không phải là câu trả lời cho câu hỏi của bạn nhưng có thể vấn đề là ở nơi khác, thiếu thư viện, phiên bản sai, ... –