JSF-Annotationen funktionieren nicht mit Spring-boot

8

Ich hatte versucht, Informationen aus Spring Boot und JSF / Primefaces / Richfaces , aber für mich funktioniert es nicht.

Ich benutze Java 8, maven, Spring-boot und JSF mit PrimeFaces. Ich möchte ausführbare jar haben und meine Anwendung über main-Methode oder über die Befehlszeile java -jar myApp.jar .

ausführen

Das Problem - JSF-Annotationen ( @ManagedBean , @ManagedProperty ) werden ignoriert.

Pom-Datei:

%Vor%

Ich habe auch versucht, javax.el-api / javax.el / jstl hinzuzufügen / zu entfernen - das gleiche Ergebnis. Für die Bean-Initialisierung habe ich den Abschnitt faces-config.xml hinzugefügt

Wenn ich spring-boot-starter-web zu spring-boot-starter ändere und spring-web habe (laut Lösung von Post von Herick) Ich habe

  

java.io.FileNotFoundException: Klassenpfad-Ressource   [org / springframework / web / servlet / config / annotierung / WebMvcConfigurerAdapter.class]   kann nicht geöffnet werden, weil es nicht existiert

Meine Konfigurationsklasse:

%Vor%

}

Mit ( exclude = {WebMvcAutoConfiguration.class, DispatcherServletAutoConfiguration.class} ) funktioniert die web.xml-Konfiguration nicht. In erwähnten Post war:

%Vor%

ListenerRegistationBean fehlt in meinem Spring-Boot und ich habe stattdessen ServletListenerRegistrationBean verwendet.

Meine web.xml

%Vor%

Und faces-config.xml:

%Vor%

Weil nicht arbeitende Annotationen verwendet werden. Übrigens funktioniert PrimeFaces.

Mein Zweck ist es, die JSF-Annotation zu erzwingen, weil es im realen Projekt ohne sie unmöglich ist.

    
Olga 10.07.2014, 08:21
quelle

1 Antwort

6

Haftungsausschluss

Ich beantworte dies basierend auf dem, was Sie meiner Meinung nach erreichen wollten, obwohl meine Antwort nicht mit dem Fragetitel übereinstimmt.

Sie sagten: "Mein Zweck ist es, JSF-Annotationen zu erzwingen, denn im realen Projekt ohne sie ist es unmöglich." Ich nehme an, du meinst "unmöglich", weil es in der faces-config.xml mühsam ist, verwaltete Beans zu setzen. Zu diesem Zweck werde ich die faces-config.xml nicht zur Verwaltung von Beans verwenden.

Ich werde Ihnen eine Alternative zeigen, die Spring-Anmerkungen verwendet, die sehr unhandlich ist und ich fühle, dass Sie Ihr ursprüngliches Ziel erreichen.

Antwort

Beispiel - Ссылка

Ich habe neulich über deine Frage nachgedacht und beschlossen, dass es funktioniert und ich gebe meine Ergebnisse auf github (Link oben). In diesem Beispiel können Sie eine JSF-Anwendung schreiben, die Spring-Annotationen anstelle von JSF-Annotationen verwendet, zum Beispiel sagen Sie

%Vor%

statt

%Vor%

und Sie können Spring dann für alle Ihre Abhängigkeitsinjektionen verwenden.

Ich habe gradle statt maven verwendet, also bedeutet das, dass Ihre Abhängigkeiten in der build.gradle statt der pom.xml liegen, die ich hinzufügen musste, damit alles funktioniert. Diese sollten einfach genug sein, um in eine pom.xml zu übersetzen, die ich mir vorstelle.

%Vor%

Meine web.xml hat jetzt nur noch ein Servlet und ich habe das Servlet-Mapping und alle anderen Attribute der web.xml entfernt

(Ich arbeite immer noch daran, diese web.xml komplett zu entfernen. Prüfe das Beispiel auf Updates, ob ich es herausgefunden habe oder nicht)

%Vor%

faces-config.xml hat jetzt keine verwalteten Beans

%Vor%

Ich habe das jetzt noch nicht, aber wir könnten darüber nachdenken, ein leeres in der web.xml zu haben. Ich habe das noch nicht recherchiert, aber eines der Spring-Projektbeispiele auf github enthält diesen Code

Ссылка

%Vor%

Ich hoffe, das beantwortet Ihre Frage. Wenn ich etwas vergessen habe, versuchen Sie es und verweisen Sie auf den Beispielcode.

Beispiel

Ссылка

Führt eine Spring-Boot-Anwendung aus, die Spring MVC und JSF in einer Anwendung mit einem gemeinsamen Kontext ausführen soll (ich habe dies in die Antwort aufgenommen, weil Sie in Ihrer Frage auf diesen Link verwiesen haben). com / questions / 22544214 / spring-boot-und-jsf-primaefaces-richfaces "> Spring Boot und JSF / Primefaces / Richfaces , die sagen, dass Mischen von Spring MVC und JSF ist unmöglich, aber ich habe in meinem Beispiel-Code arbeiten.

    
Zergleb 03.08.2014 22:06
quelle

Tags und Links