2016-11-06 2 views
0

Ich habe eine Tapestry-Anwendung (Filtername ist "app") mit app.properties, die sich unter WEB-INF befinden. Ich mag die Eigenschaften in einer einfachen Java-Klasse verwenden, wo ich sie jedoch überTapestry-Nachrichten - Inject schlägt mit Nullpointer fehl

@Inject 
Messages messages; 

injizieren mag, das hält auf Fehler und gibt mir eine Nullpointer-Ausnahme. Ich habe this auf Stackoverflow gefunden, aber diese Lösung gilt nicht für das Problem hier. Das Platzieren einer Eigenschaftendatei in WEB-INF sollte perfekt sein (as outlined here). Gibt es jedoch eine spezielle Konfiguration oder etwas, das ich in Bezug auf Pakete beachten muss, d. H. Funktioniert das @Inject nur in bestimmten Paketen in der Anwendung? Oder muss die Java-Klasse einige Besonderheiten haben (Standardkonstruktor, ...)?

Antwort

0

Mein Verständnis ist, dass Sie @ nur in Klassen einlesen können, die von Tapestry verwaltet werden (Seiten, Komponenten, Mixins, Tapestry IOC-Dienste). Können Sie Ihre "einfache Java-Klasse" in eine Tapestry-IOC-Serviceklasse verwandeln?

+0

Vielen Dank für Ihren Kommentar Bob. Ich habe die Klasse als binder.bind hinzugefügt (EmailService.class, EmailServiceImpl.class); in der AppModule-Klasse von Tapestry (in der Bind-Methode). Ich stoße immer noch auf dasselbe Problem. – Christian

+0

Ist die Klasse im Paket "services"? Wenn nicht, verschiebe es dorthin und schau, ob das funktioniert. –