[JBoss Seam] - Something wrong with whole view layer :/ - getting NPE
by Yacho
OK so im past my DB problems but now i got something like :
i have 2 views in my app - index and register.
index renders fine - when i click on register link it follows me to the register.xhtml view wich is ok but i get NPE Exception :
java.lang.NullPointerException
| at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:580)
| at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:757)
| at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:811)
| at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:335)
| at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
| at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
| at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
| at org.ajax4jsf.framework.renderer.RendererBase.renderChild(RendererBase.java:282)
| at org.ajax4jsf.framework.renderer.RendererBase.renderChildren(RendererBase.java:262)
| at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:189)
| at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:184)
| at org.ajax4jsf.framework.renderer.RendererBase.encodeChildren(RendererBase.java:121)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
| at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
| at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
| at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
| at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
| at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:577)
| at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
| at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
| at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:63)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:87)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:63)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:46)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:40)
| at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:140)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:595)
Also i get some warnings about duplicated seam libraries but to be honest i dont know how to eliminate them.
Please help :/
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085132#4085132
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4085132
18 years, 9 months
[JBoss Seam] - Re: Seam Captcha configuration
by caye
Actually, i have been trying to customize the captcha with seam 2.0. And what i did is the same as wise_guybg, with some changes. My code is this:
| import java.awt.Color;
| import java.awt.image.BufferedImage;
| import java.io.ByteArrayOutputStream;
| import java.io.IOException;
|
| import javax.imageio.ImageIO;
| import javax.servlet.http.HttpServletRequest;
| import javax.servlet.http.HttpServletResponse;
|
| import org.jboss.seam.ScopeType;
| import org.jboss.seam.annotations.Install;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.Scope;
| import org.jboss.seam.annotations.Startup;
| import org.jboss.seam.annotations.intercept.BypassInterceptors;
| import org.jboss.seam.captcha.CaptchaImage;
| import org.jboss.seam.contexts.Contexts;
| import org.jboss.seam.contexts.ServletLifecycle;
|
| import com.octo.captcha.component.image.backgroundgenerator.UniColorBackgroundGenerator;
| import com.octo.captcha.component.image.fontgenerator.RandomFontGenerator;
| import com.octo.captcha.component.image.textpaster.RandomTextPaster;
| import com.octo.captcha.component.image.wordtoimage.ComposedWordToImage;
| import com.octo.captcha.component.word.wordgenerator.RandomWordGenerator;
| import com.octo.captcha.engine.image.gimpy.BasicGimpyEngine;
| import com.octo.captcha.image.gimpy.GimpyFactory;
| import com.octo.captcha.service.CaptchaServiceException;
| import com.octo.captcha.service.captchastore.FastHashMapCaptchaStore;
| import com.octo.captcha.service.image.DefaultManageableImageCaptchaService;
| import com.octo.captcha.service.image.ImageCaptchaService;
|
| @Startup
| @Scope(ScopeType.APPLICATION)
| @Name(value="org.jboss.seam.captcha.captchaImage")
| @BypassInterceptors
| @Install(precedence = Install.DEPLOYMENT,
| classDependencies="com.octo.captcha.service.image.ImageCaptchaService")
| public class CustomCaptcha extends CaptchaImage
| {
| private ImageCaptchaService service;
|
| public static CustomCaptcha instance() {
| if (!Contexts.isApplicationContextActive()) {
| throw new IllegalStateException("No application context active");
| }
| return (CustomCaptcha) Contexts.getApplicationContext().get(CustomCaptcha.class);
| }
|
| @Override
| public void create() {
| System.out.println("generating captcha...");
|
| BasicGimpyEngine customCaptcha = new BasicGimpyEngine();
| GimpyFactory factory = new GimpyFactory(new RandomWordGenerator("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), new ComposedWordToImage(new RandomFontGenerator(new Integer(15), new Integer(15)), new UniColorBackgroundGenerator(new Integer(150), new Integer(30)), new RandomTextPaster(new Integer(4), new Integer(7), Color.BLACK)));
| GimpyFactory[] factories = {factory};
| customCaptcha.setFactories(factories);
|
| service = new DefaultManageableImageCaptchaService(
| new FastHashMapCaptchaStore(),
| customCaptcha,
| 180,
| 120000,
| 75000);
| }
|
| @Override
| public String getResourcePath() {
| return "/mycaptcha";
| }
|
| @Override
| public boolean validateResponse(String id, String response) {
| try {
| return service.validateResponseForID(id, response);
| }
| catch (CaptchaServiceException cse) {
| return false;
| }
| }
|
| @Override
| public void getResource(HttpServletRequest request, HttpServletResponse response) throws IOException
| {
| ByteArrayOutputStream out = new ByteArrayOutputStream();
| ServletLifecycle.beginRequest(request);
|
| try {
| String captchaId = request.getQueryString();
| BufferedImage challenge = service.getImageChallengeForID(captchaId, request.getLocale());
| ImageIO.write(challenge, "jpeg", out);
| }
| catch (IllegalArgumentException e) {
| response.sendError(HttpServletResponse.SC_NOT_FOUND);
| return;
| }
| catch (CaptchaServiceException e) {
| response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
| return;
| }
| finally {
| ServletLifecycle.endRequest(request);
| }
|
| response.setHeader("Cache-Control", "no-store");
| response.setHeader("Pragma", "no-cache");
| response.setDateHeader("Expires", 0);
| response.setContentType("image/jpeg");
| response.getOutputStream().write(out.toByteArray());
| response.getOutputStream().flush();
| response.getOutputStream().close();
| }
|
| }
The only difference with the seam one is the precedence of installation and the kind of captcha generated (the default gimpy one was too dificult to read sometimes).
But i am having problems in the registration page where i'm using this captcha (i'm using on it JSF and A4J). The error is this one:
| 18:52:42,007 WARN [lifecycle] executePhase(PROCESS_VALIDATIONS 3,com.sun.faces.context.FacesContextImpl@1903f07) threw exception
| javax.faces.FacesException: /common/ui-elements/forms/captcha.xhtml @17,46 value="#{mycaptcha.response}": Target Unreachable, identifier 'mycaptcha' resolved to null
| at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:108)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
| at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
| at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
| at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
| at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:195)
| at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:159)
| at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
| at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
| at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:395)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: javax.el.PropertyNotFoundException: /common/ui-elements/forms/captcha.xhtml @17,46 value="#{mycaptcha.response}": Target Unreachable, identifier 'mycaptcha' resolved to null
| at com.sun.facelets.el.TagValueExpression.getType(TagValueExpression.java:62)
| at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:81)
| at javax.faces.component.UIInput.getConvertedValue(UIInput.java:934)
| at javax.faces.component.UIInput.validate(UIInput.java:860)
| at javax.faces.component.UIInput.executeValidate(UIInput.java:1065)
| at javax.faces.component.UIInput.processValidators(UIInput.java:666)
| at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033)
| at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033)
| at javax.faces.component.UIForm.processValidators(UIForm.java:229)
| at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033)
| at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:662)
| at org.ajax4jsf.framework.ajax.AjaxViewRoot.access$201(AjaxViewRoot.java:53)
| at org.ajax4jsf.framework.ajax.AjaxViewRoot$3.invokeRoot(AjaxViewRoot.java:315)
| at org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:53)
| at org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext.java:191)
| at org.ajax4jsf.framework.ajax.AjaxViewRoot.processValidators(AjaxViewRoot.java:329)
| at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
| ... 37 more
|
I would like to know if there is some way that the captcha wouldnt fail with a4jsf at the same time, or if some of you could guess where i am making the mistake.
Thanks in advance!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085127#4085127
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4085127
18 years, 9 months
[Security & JAAS/JBoss] - Re: NullPointerException thrown from LDAP Context
by jbosexplorer
Problem solved..config issue only..I've changed my entries as follows and it's working fine...
<login-module code = "org.jboss.security.auth.spi.LdapLoginModule" flag = "required">
<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
<module-option name="java.naming.provider.url">ldap://myserver:389/</module-option>
<module-option name="java.naming.security.authentication">simple</module-option>
<module-option name="java.naming.security.principal">uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot</module-option>
<module-option name="java.naming.security.credentials">password</module-option>
<module-option name="baseDN">dc=company,dc=co,dc=uk</module-option>
<module-option name="principalDNPrefix">uid=</module-option>
<module-option name="principalDNSuffix">,ou=people,dc=company,dc=co,dc=uk</module-option>
<module-option name="uidAttributeID">uid</module-option>
<module-option name="searchScope">SUBTREE_SCOPE</module-option>
</login-module>
</application-policy>
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085124#4085124
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4085124
18 years, 9 months