java.lang.IllegalArgumentException: null source
Nous avons une application qui utilise JSF2 et au Printemps. L'application fonctionne très bien lorsqu'il est déployé. Mais ce qui se passe si je suis passé par les étapes suivantes:
- Ouvrir la page de connexion de l'application.
- Redéployer l'application sur le serveur.
- Essayé de vous connecter en utilisant le déjà ouvert la page de connexion, et il montre à l'exception suivante:
javax.servlet.ServletException: null source at javax.faces.webapp.FacesServlet.service(FacesServlet.java:321) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) root cause java.lang.IllegalArgumentException: null source at java.util.EventObject.<init>(EventObject.java:38) at javax.faces.event.SystemEvent.<init>(SystemEvent.java:67) at javax.faces.event.ComponentSystemEvent.<init>(ComponentSystemEvent.java:69) at javax.faces.event.PostRestoreStateEvent.<init>(PostRestoreStateEvent.java:69) at com.sun.faces.lifecycle.RestoreViewPhase.deliverPostRestoreStateEvent(RestoreViewPhase.java:256) at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:245) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
Si je clique sur la première page de connexion, puis entrez les informations de connexion de l'application à ne pas rompre. Cela se produit uniquement si j'essaie d'utiliser le chargé au préalable la page de connexion avec la nouvelle application déployée.
Quelqu'un connaît la réponse?
OriginalL'auteur Ikthiander | 2011-01-25
Vous devez vous connecter pour publier un commentaire.
Celui-ci devrait avoir été jeté comme un
ViewExpiredException
. C'est un bug qui a commencé à se manifester dans Mojarra 2.0.3 et est été corrigé dans la Mojarra 2.1.0. Voir aussi question 1762 (notez que Mojarra 2.1.0 ne pas travail sur Tomcat/Jetty, utilisez au moins Mojarra 2.1.1).En gros, quand Mojarra ne parvient pas à construire ou restaurer la vue, puis habituellement, il jette un assez précis exception, mais à cause de ce bug, valide d'un point de vue a été incorrectement été prévu plus tard dans le code qui entraîne à son tour dans
IllegalArgumentException: null source
. La possible réel cause aurait été que le point de vue contient une simple erreur de syntaxe XML, comme une balise manquante ou cassée valeur de l'attribut pour lequel Mojarra aurait normalement jeté unFaceletException
avec une très détaillé message avec le numéro de ligne et la position et de ces.Pour empêcher la
ViewExpiredException
, vous devez actualiser la page par une requête GET avant de faire des actions. Si vous utilisez un Mojarra version où ce bug ne se manifeste pas (par exemple 2.0.2 ou plus, ou 2.1.0 ou plus récent), alors vous pouvez traiter avec un<error-page>
dansweb.xml
sur l'exception particulière et de fournir une page d'erreur personnalisée dans laquelle l'utilisateur est informé que la session a expiré, avec un lien pour la demande initiale d'URI.J'obtiens une page d'erreur mentionné dans mon web.xml mais je veux savoir à propos de ce qui est à l'origine de ce problème et ce qui pourrait être une bonne solution pour elle.
Si vous vous posez à propos de
IllegalArgumentException: null source
, comme mentionné dans le paragraphe 1er, c'est un bug dans Mojarra. Mise à niveau au moins 2.1.0. Le 2e alinéa, explique en quoi consiste le bug et une autre cause possible deIllegalArgumentException: null source
lors de l'utilisation de Mojarra avec ce bug. Le paragraphe 3 indique comment traiter avec le réel exception, qui estViewExpiredException
à l'OP cas particulier. Si vous souhaitez plus d'informations surViewExpiredException
, consultez stackoverflow.com/tags/viewexpiredexception/infoJe n'ai certainement pas
ViewExpiredException
que ma session est stocké danscookies
et je n'ai pas garder ma page ouverte pour assez longtemps. Aussi juste une pensée, d'un tiers en raisonjsf
commeicefaces
,richfaces
etprimefaces
devrait réduire l'effort de développement ainsi que de la configuration des efforts, j'ai eu quelques moments difficiles dans l'obtention de ce droit.ensuite, c'est juste de l'autre cause possible: une erreur de syntaxe dans le code XHTML. Mise à niveau au moins 2.1.0, puis vous allez voir le réel exception.
OriginalL'auteur BalusC
Tant que javax.des visages.PARTIAL_STATE_SAVING est fixé à faux vous devez recevoir ce java.lang.IllegalArgumentException. Si vous définissez javax.des visages.PARTIAL_STATE_SAVING à vrai (et vous savez ce que vous faites), vous obtiendrez la "bonne vieille" javax.des visages.application.ViewExpiredException dos.
OriginalL'auteur Manuel
Cela ressemble à http://java.net/jira/browse/JAVASERVERFACES-1758
qui est pas fixe dans Mojarra 2.1.x
OriginalL'auteur Roger Keays
Dans mon cas s'est avéré que j'avais manquant balise de fin dans le fichier xhtml pour l'un de la jstl appels. j'ai été en utilisant choisir balise et un de la quand les marques à choisir entre ne pas avoir une balise de fin
OriginalL'auteur Masoud