javax.des visages.FacesException: java.lang.ClassCastException: java.lang.La chaîne ne peut pas être lancé à javax.des visages.composante.UIComponent
Mon Java EE web de l'application est fonctionne bien avec Glassfish 2.1. Maintenant, je veux migrer vers Glassfish 3.1.1
J'ai suivi les modifications prévues ici
mon dépendances pour richfaces sont comme suit:-
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-api</artifactId>
<version>3.3.3.Final</version>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-impl-jsf2</artifactId>
<version>3.3.3.Final</version>
</dependency>
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui</artifactId>
<version>3.3.3.Final</version>
</dependency>
mon jsf dépendances sont
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.0.2</version>
</dependency>
ajouté contexte param dans web.xml comme suit:-
<context-param>
<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
<param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
<param-value>true</param-value>
</context-param>
modifié mon fichier descripteur d'application avec la version 2.5 comme:
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
mon dans faces-config est la suivante:-
<application>
<navigation-handler >
org.navigation.CustomNavigationHandler
</navigation-handler>
<view-handler>
org.ajax4jsf.application.AjaxViewHandler
</view-handler>
<!-- <view-handler>
com.sun.facelets.FaceletViewHandler
</view-handler>-->
<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
<message-bundle>MyMessages</message-bundle>
</application>
Application déployée avec succès, mais après que j'obtiens l'erreur de classe cast exception au moment du démarrage d'une application dans le navigateur :
le journal du serveur est la suivante: le
INFO: myApp was successfully deployed in 21,635 milliseconds.
SEVERE: Error Rendering View[/login.xhtml]
javax.faces.FacesException: java.lang.ClassCastException: java.lang.String cannot be cast to javax.faces.component.UIComponent
at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1923)
Il fonctionne très bien dans glassfish 2 donc je pense qu'il n'y a pas de problème concernant la liaison avec des attributs backing bean.
comment puis-je résoudre ce problème??
OriginalL'auteur Hemant Metalia | 2012-01-13
Vous devez vous connecter pour publier un commentaire.
Cette exception ne se produire lorsque vous avez un
String
valeur de la propriété commeet sont le liant à un composant à l'aide de la
binding
attribut:C'est incorrect. La valeur doit être relié à l'aide de la
value
attribut:La
binding
ne doit être utilisé pour lier l'ensemble composant (qui est une instance deUIComponent
) à la sauvegarde de haricots, par exemple à programmaticlly de le modifier.Vérifier votre
login.xhtml
code. Si nécessaire, couper le plus de code possible aussi longtemps que vous pouvez toujours reproduire le problème, de sorte que vous pouvez vous retrouver avec le plus petit fragment de code qui reproduit exactement ce problème qui devrait vous permettre de trouver le coupable plus facile.Voir aussi:
RegistrationServiceBean.init
méthode renvoie la Chaîne de caractèresIl est de votre cause. Supprimer et de faire le travail sur le haricot du constructeur au lieu ou à l'utilisation
<f:event>
à la place.OriginalL'auteur BalusC