W module play-swagger
użyliśmy play.routes.compiler.RoutesFileParser
się wszystkie dotychczas zarejestrowane trasy z gry i dalej analizować je do dokumentacji API:Programowo uzyskać trasy w grze! Ramy 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
Wynika to w następujący błąd: java.lang.NoClassDefFoundError: play/routes/compiler/RoutesFileParser
Wygląda na to, że RoutesFileParser
stał się prywatny w Play! 2.5.
Jaki jest prawidłowy sposób pobierania wszystkich tras odtwarzania, jak w powyższym przykładzie?
Sprawdziłem historię git programu RoutesFileParser i nie znalazłem żadnej ważnej zmiany z wersji 2.4.0. Obiekt jest publiczny z metodą analizowania publicznego, a klasa jest prywatna, tak jak w przypadku gry 2.4.0. https://github.com/playframework/playframework/commits/master/framework/src/routes-compiler/src/main/scala/play/routes/compiler/RoutesFileParser.scala To nie jest odpowiedź na twoje pytanie, ale może problem jest gdzie indziej, brakujące biblioteki, złe wersje, ... –