2009-07-06 6 views
0

J'utilise une application Web Seam avec Richfaces pour l'implémentation JSF. Je voudrais mapper une vue à une URL particulière comme vous le feriez avec Spring MVC dans la carte Url.Alias ​​de vue Seam

Voici un extrait de mon /WEB-INF/pages.xml

<page view-id="*" scheme="http"> 
    <navigation from-action="#{identity.logout}"> 
     <redirect view-id="/content/index.xhtml"/> 
    </navigation> 
</page> 
<page view-id="/content/index.xhtml"> 
    <rewrite pattern="/index"/> 
</page> 

Donc, comme vous pouvez le voir, mes pages d'index en fait à /content/index.xhtml réside. Le problème que j'ai est Seam/JSF n'aime pas la redirection ici pour une raison étrange. Je l'ai bien fonctionné quand je viens de supprimer l'extension, mais le mettre dans un autre répertoire semble avoir cassé quelque chose. L'exception que je reçois pour les curieux est le suivant:

18:54:17,525 DEBUG [ExceptionFilter] exception root cause 

java.lang.NullPointerException: FacesContext est nul à org.ajax4jsf.context.AjaxContext.getCurrentInstance (AjaxContext.java:159) org. ajax4jsf.context.AjaxContext.getCurrentInstance (AjaxContext.java:144) à org.ajax4jsf.component.AjaxViewRoot.getViewId (AjaxViewRoot.java:580) à org.ajax4jsf.application.AjaxViewHandler.renderView (AjaxViewHandler.java:203) à com.sun.faces.lifecycle.RenderResponsePhase.execute (RenderResponsePhase.java:108) à com.sun.faces.lifecycle.LifecycleImpl.phase (LifecycleImpl.java:266) à com.sun.faces.lifecycle.LifecycleImpl.render (LifecycleImpl.java:159) à javax.faces.webapp.FacesServlet.service (FacesServlet.java:245) à org.mortbay.jetty.servlet.ServletHolder. handle (ServletHolder.java:502) à org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1148) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java: 83) à org.jboss.seam.web.RewriteFilter.doFilter (RewriteFilter.java:63) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à com.walterjwhite. webContent.servlet.filter.FirstVisitFilter.doFilter (FirstVisitFilter.java:55) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.web.RedirectFilter.doFilter (RedirectFilter.java:45) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à com.walterjwhite.seamCore. servlet.filter.security.SecurityFilter.doFilter (SecurityFilter.java:82) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) sur org.jboss.seam.web.IdentityFilter. doFilter (IdentityFilter.java:40) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) sur org.jboss.seam.web.MultipartFilter.doFilter (MultipartFilter.java:90) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à com.walterjwhite.seamCore.servlet.filter.security.Authentica tionFailureEventFilter.doFilter (AuthenticationFailureEventFilter.java:77) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) sur com.walterjwhite.seamCore.servlet.filter.security.IpAddressFilter.doFilter (IpAddressFilter.java:70) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.web.ExceptionFilter.doFilter (ExceptionFilter.java:64) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:73) à org.ajax4jsf.webapp. BaseFilter.doFilter (BaseFilter.java:510) sur org.jboss.seam.web.Ajax4jsfFilter.doFilter (Ajax4jsfFilter.java:56) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.web.HotDeployFilter.doFilter (HotDeployFilter.java:53) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter. java: 69) à org.jboss.seam.web.LoggingFilter.doFilter (LoggingFilter.java:60) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org. jboss.seam.servlet.SeamFilter.doFilter (SeamFilter.java:158) à org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1139) à org.mortbay.jetty.servlet.ServletHandler. handle (ServletHandler.java:378) à org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) à org.mortbay.jetty.servlet.S essionHandler.handle (SessionHandler.java:181) à org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:765) à org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java:417) à org.mortbay.jetty.servlet.Dispatcher.forward (Dispatcher.java:334) à org.mortbay.jetty.servlet.Dispatcher.forward (Dispatcher.java:126) à com.walterjwhite.webContent.servlet. filter.FirstVisitFilter.doFilter (FirstVisitFilter.java:49) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.web.RedirectFilter.doFilter (RedirectFilter. java: 45) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à com.walterjwhite.seamCore.servlet.f ilter.security.SecurityFilter.doFilter (SecurityFilter.java:82) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) sur org.jboss.seam.web.IdentityFilter.doFilter (IdentityFilter.java:40) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.web.MultipartFilter.doFilter (MultipartFilter.java:90) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à com.walterjwhite.seamCore.servlet.filter.security.AuthenticationFailureEventFilter.doFilter (AuthenticationFailureEventFilter.java:77) à org.jboss. seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à com.walterjwhite.seamCore.servlet.filter.security.IpAddressFilt er.doFilter (IpAddressFilter.java:70) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) sur org.jboss.seam.web.ExceptionFilter.doFilter (ExceptionFilter.java: 64) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:73) à org. ajax4jsf.webapp.BaseXMLFilter.doXmlFilter (BaseXMLFilter.java:178) à org.ajax4jsf.webapp.BaseFilter.handleRequest (BaseFilter.java:290) à org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest (BaseFilter.java:368) à org.ajax4jsf.webapp.BaseFilter.doFilter (BaseFilter.java:495) à org.jboss.seam.web.Ajax4jsfFilter.doFilter (Ajax4jsfFi lter.java:56) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.web.HotDeployFilter.doFilter (HotDeployFilter.java:53) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.web.LoggingFilter.doFilter (LoggingFilter.java:60) à org.jboss.seam.servlet. SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.servlet.SeamFilter.doFilter (SeamFilter.java:158) à org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler. java: 1139) à org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:378) à org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java: 216) à org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) à org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:765) à org.mortbay. jetty.webapp.WebAppContext.handle (WebAppContext.java:417) à org.mortbay.jetty.servlet.Dispatcher.forward (Dispatcher.java:334) à org.mortbay.jetty.servlet.Dispatcher.forward (Dispatcher. java: 126) à com.walterjwhite.seamCore.servlet.filter.security.SecurityFilter.doFilter (SecurityFilter.java:62) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) sur org.jboss.seam.web.IdentityFilter.doFilter (IdentityFilter.java:40) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java : 69) à org.jboss.seam.web.MultipartFilter.doFilter (MultipartFilter.java:90) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à com.walterjwhite .seamCore.servlet.filter.security.AuthenticationFailureEventFilter.doFilter (AuthenticationFailureEventFilter.java:77) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) sur com.walterjwhite.seamCore.servlet .filter.security.IpAddressFilter.doFilter (IpAddressFilter.java:70) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) sur org.jboss.seam.web.ExceptionFilter.doFilter (ExceptionFilter.java:64) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) at org.jboss.seam.web.ContextFilter $ 1.process (ContextFilter.java:42) à org.jboss.seam.servlet.ContextualHttpServletRequest.run (ContextualHttpServletRequest.java:53) at org.jboss.seam.web .ContextFilter.doFilter (ContextFilter.java:37) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter .java: 73) à org.jboss.seam.web.HotDeployFilter.doFilter (HotDeployFilter.java:53) à org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org .jboss.seam.web.LoggingFilter.doFilter (LoggingFilter.java:60) sur org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter (SeamFilter.java:69) à org.jboss.seam.servlet.SeamFilter.doFilter (SeamFilter.java:158) à org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1139) à org.mortbay.jetty. servlet.ServletHandler.handle (ServletHandler.java:378) à org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) à org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java: 181) à org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:765) à org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java:417) à org.mortbay.jetty. handler.ContextHandlerCollection.handle (ContextHandlerCollection.java:230) à org.mortbay.jetty.handler.HandlerCollection.handle (HandlerCollection.java:114) à org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) à org.mortbay.jetty.Server.handle (Server.java:324) à org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:535) à org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete (HttpConnection.java:865) à org.mortbay.jetty.HttpParser.parseNext (HttpParser.java:539) à org.mortbay. jetty.HttpParser.parseAvailable (HttpParser.java:212) à org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:404) à org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:409) à org.mortbay.thread.QueuedThreadPool $ PoolThread.run (QueuedThreadPool.java: 520)

Ai-je manqué quelque chose de vraiment petit, est-ce possible? Je veux simplement garder mon contenu dans un répertoire séparé afin que mon combat empaqueté soit plus facile à démonter et à diagnostiquer quand quelque chose ne fonctionne pas.

Merci,

Walter

Répondre

1

Il semble ma configuration de modèle créé en fait le problème. Je référençais un fichier modèle qui n'existait pas. J'ai tout mon contenu dans/contenu et mes modèles dans/modèles. Jusqu'à présent, cela fonctionne bien.

Walter