döndürür Web uygulamasının oturum açma bölümü ile son birkaç gündür mücadele ediyorum. Tomcat'ta JDBCRealm'i kullanarak bir kullanıcıyı başarılı bir şekilde doğrulayabileceğim noktaya geldim (kullanıcıları bir sql sunucu veritabanından okuyarak). Şimdi Kullanıcının hesabı engellendiğinde veya kimlik bilgileri yanlış olduğunda, şu anda sıkıştığım yer olan bir çeşit geri bildirim göndermek istiyorum. FacesContext.getCurrentInstance() nasıl kullanılır,
Bunu kullanmak istedi:try {
request.login(request.getParameter("user"), request.getParameter("pass"));
} catch (ServletException se) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Wrong Username/Password combination"));
log(se.getMessage());
}
Ama FacesContext.getCurrentInstance() her zaman döndürür boş ..
ben isteği bulunan bir sayfadan gelmesi gerektiğini öğrendim biraz araştırma yaptıktan sonra/FacesServlet çağırılır ve FacesContext başlatılır böylece yüzleri (en azından anladım).
Oturum açma sayfasını Web Sayfaları klasörünün içinde, yüzler adlı yeni bir klasöre taşıdım. Ama şimdi her şey login.xhtml sayfasını çağırmak deneyin, bu hatayı alıyorum:
/login.xhtml Not Found in ExternalContext as a Resource
Ve bu StackTrace geçerli:
com.sun.faces.context.FacesFileNotFoundException: /login.xhtml Not Found in ExternalContext as a Resource
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:232)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:273)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:201)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:764)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
ben URL'yi doğrudan girdiğinizde Hatta bu hatayı alıyorum tarayıcı
Bunu düzeltmek konusunda herhangi bir yardım (ı -.- bellek istisnalar dışında PermGen çok olsun çünkü arada bir acıdır) Apache Tomcat 7 ile NetBeans 7.1 kullanarak
Im büyük takdir . Yönetilen bir fasulye ya da başka bir MTU eser değilken
Evet, bu benim ilk MTU girişimi :) Cevabınız için teşekkürler, bu benim soruya cevap yok. Temel olarak, FacesServlet'in çalışmasından önce FacesContext'e erişemiyorum, bu yüzden Fctx'e erişmek istediğim zaman yönetilen bir fasulye kullanmam gerekiyor. Öğrenme bölümü hakkında, bir kitap okumaya başlamadan önce bir dilde temel şeyler yapmayı denemeyi seviyorum, bu şekilde okuduğumda, daha kolay olacak ve kitabın ne hakkında olduğunu bileceğim . Her iki durumda da sayfayı neden bir/faces klasörüne yerleştiremediğimi hala bilmiyorum? Tavsiyenizi takip edip Faces Servlet modelini değiştireceğim. –