Sto cercando di utilizzare Weld-SE per l'integrazione delle dipendenze in un'applicazione dropwizard. Posso bootstrap Weld e iniettare nella classe Application in questo modo:Utilizzo di Weld with Dropwizard
public class App extends Application<AppConfig> {
@Inject NameService service;
@Inject RestResource resource;
public static void main(String[] args) throws Exception {
Weld weld = new Weld();
WeldContainer container = weld.initialize();
App app = container.instance().select(App.class).get();
app.run(args);
weld.shutdown();
}
}
Ho scritto un metodo produttore in una classe separata per la RestResource e questo è anche iniettato bene. Tuttavia nella classe di risorse il servizio non viene iniettato:
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public class RestResource {
@Inject NameService service;
@GET
public String test() {
return service.getName();
}
}
Qui il servizio è sempre nullo. Qualcuno sa come farlo funzionare?
Cosa contenitore stai usando? – siva636
Nessun contenitore. Dropwizard è java se, costruisce un barattolo di grasso con tutti i servizi (jetty, jersey ecc sono in là di default) incorporato. Quello che sto cercando di fare è includere weld-se come uno di quelli. –