Vous pouvez définir deux itinéraires, un pour votre contrôleur (pour recevoir les données de publication) et un pour servir votre fichier javascript exact.
Une solution plus standard consiste à avoir un itinéraire dédié pour desservir tous les actifs (y compris votre application javascript). Pour cela, regardez la réponse suivante: Routing template format for undertow
Undertow.builder().addHttpListener(8080, "0.0.0.0")
.setHandler(Handlers.path()
// Controllers
.addPrefixPath("/controller", Handlers.routing()
.post("/{id}", exchange -> {
String id = exchange.getQueryParameters().get("id").getFirst();
}))
// Serve your file, preserving any route information
.addPrefixPath("/app.js", exchange -> {
Path p = Paths.get("/path/to/app.js");
exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/javascript");
exchange.getResponseSender().send(
ByteBuffer.wrap(Files.readAllBytes(p))
)})
).build().start();
Avec cet exemple, votre contrôleur sera disponible à la route /contrôleur/{id} et votre fichier javascript sera servi directement.
Notez que cette façon de servir le fichier n'est pas optimale, cela fonctionne si les fichiers ne sont pas trop volumineux. Pour une meilleure façon de servir les fichiers, on peut jouer avec les classes PathResource et PathResourceManager d'Undertow.
Cela aiderait si vous partagiez du code! – aramaki
Ouais ben ben il n'y a vraiment rien à montrer sauf 2 lignes de code ici ^^ ' – baskwo