Die Verwendung von JSF 2.2.9 auf Spring + Tomcat verursacht java.lang.NoClassDefFoundError: javax / enterprise / context / spi / Contextual

8

Ich muss benutzerdefinierte HTML-Attribute in JSF-Komponenten verwenden, und dafür ist die einzige Lösung, die ich gefunden habe, JSF 2.2 zu verwenden:

%Vor%

Das Problem ist, dass ich Spring + Tomcat benutze und ich kann das nicht ändern, weil ich keine Zeit habe. Jedes Mal, wenn ich meinen Server starte, habe ich folgenden Fehler:

%Vor%

Ich weiß, dass dies passiert, weil ich CDI nicht verwende, aber wie ich sagte, kann ich wegen der Zeit nicht von Spring zu CDI wechseln.

Wie kann ich dieses Problem lösen? Ich muss JSF 2.2 (Da benutzerdefinierte HTML-Attribute) und Spring.

Gelöst:

Dieses Problem ist gelöst, ich gehe auf JSF 2.2.6 zurück und der Fehler hört auf.

Stapelverfolgung:

%Vor%     
Shelly 01.02.2015, 18:13
quelle

4 Antworten

14

Ich habe dasselbe Problem und habe deine Frage auf Google gefunden (ich benutze JSF 2.2.9), mit der Antwort von hwellmann, habe ich diese Abhängigkeit von pom.xml meines Maven-Projekts hinzugefügt:

%Vor%

und Problem gelöst, danke!

    
wryel 02.03.2015 05:10
quelle
6

Haben Sie die aufgenommen? cdi-api.jar in Ihrer Einrichtung?

Das bedeutet nicht, dass Sie CDI in Ihrer Anwendung verwenden müssen, aber die API-Klassen müssen da sein, um die Abhängigkeiten von JSF zu erfüllen.

    
Harald Wellmann 01.02.2015 20:38
quelle
0

Wahrscheinlich verwenden Sie @ViewScoped von javax.faces.bean , es wurde in JSF 2.0 hinzugefügt. Verwenden Sie die Annotation von javax.faces.view , die in JSF 2.2 hinzugefügt wurde.

    
Luiz 24.02.2015 19:59
quelle
-1

Verwenden Sie JSF 2.2.8 oder ändern Sie Tomcat zu Apache TomEE, oder konfigurieren Sie CDI + JSF-Tomcat. Beste Lösung mit älteren Versionen von jsf, weil in den neuen Versionen wird die Abhängigkeit von CDI

    
Armen Arzumanyan 02.02.2015 10:58
quelle

Tags und Links