-
30. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 5, 2009 5:11 PM (in response to elgwappo)MyFaces 1.1 is supported, 1.2 is not.
Are these tests in svn? -
31. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 6, 2009 12:01 AM (in response to elgwappo)"stan.silvert@jboss.com" wrote:
I've uploaded a new set of snapshots to the repo. JSFClientSession now implements setCurrentWindow() and it ignores page changes unless the changed page comes from the current window.
You can get the latest from the JBoss snapshot repo:
http://snapshots.jboss.org/maven2/org/jboss/jsfunit/
This code is still not right. I've found timing issues that cause test failures. However, it does allow you to get started with IceFaces.
I have now added an IceFaces test to my test suite. It doesn't do much except verify that you can get the proper Page with JSFClientSession. I suspect that JSFServerSession is going to have problems with IceFaces down the road.
Stan
Just did an svn up and I'm not seeing those changes for setCurrentWindow :( Are they in a branch or something? -
32. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 6, 2009 12:35 AM (in response to elgwappo)Disregard the last post, I found it :)
I just tried to deploy the ICEfaces example to JBoss 5 jdk6 using the jsfunit deployer and I get the following exception, is this normal (hitting http://localhost:8080/icefaces-demo-address-jsfunit)?javax.faces.FacesException: Can't parse stream for /address.jspx Failed to execute JSP lifecycle. com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:534) com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:159) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:18) com.icesoft.faces.context.View$2$1.respond(View.java:41) com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:167) com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet$ThreadBlockingRequestResponse.respondWith(ThreadBlockingAdaptingServlet.java:36) com.icesoft.faces.context.View$2.serve(View.java:48) com.icesoft.faces.context.View.servePage(View.java:130) com.icesoft.faces.webapp.http.core.SingleViewServer.service(SingleViewServer.java:51) com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24) com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160) com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:38) com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19) com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63) com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:55) com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23) com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:91) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667) org.apache.jsp.index_jsp._jspService(index_jsp.java:68) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) root cause javax.faces.FacesException: Failed to execute JSP lifecycle. com.icesoft.faces.webapp.parser.Parser.parse(Parser.java:176) com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:528) com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:159) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:18) com.icesoft.faces.context.View$2$1.respond(View.java:41) com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:167) com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet$ThreadBlockingRequestResponse.respondWith(ThreadBlockingAdaptingServlet.java:36) com.icesoft.faces.context.View$2.serve(View.java:48) com.icesoft.faces.context.View.servePage(View.java:130) com.icesoft.faces.webapp.http.core.SingleViewServer.service(SingleViewServer.java:51) com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24) com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160) com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:38) com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19) com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63) com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:55) com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23) com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:91) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667) org.apache.jsp.index_jsp._jspService(index_jsp.java:68) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) root cause java.lang.IllegalStateException: ICEfaces parser unable to determine JSF implementation ViewTag class. com.icesoft.faces.webapp.parser.Parser.parse(Parser.java:152) com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:528) com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:159) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:18) com.icesoft.faces.context.View$2$1.respond(View.java:41) com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:167) com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet$ThreadBlockingRequestResponse.respondWith(ThreadBlockingAdaptingServlet.java:36) com.icesoft.faces.context.View$2.serve(View.java:48) com.icesoft.faces.context.View.servePage(View.java:130) com.icesoft.faces.webapp.http.core.SingleViewServer.service(SingleViewServer.java:51) com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24) com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160) com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:38) com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19) com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63) com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:55) com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23) com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:91) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667) org.apache.jsp.index_jsp._jspService(index_jsp.java:68) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
-
33. Re: [IceFaces] NullPointerException when accessing JSFServer
ssilvert Feb 6, 2009 8:53 AM (in response to elgwappo)I got that too. I think we have run into this ICEfaces bug:
http://jira.icefaces.org/browse/ICE-3682
http://jira.icefaces.org/browse/ICE-3902
It does run OK against Tomcat 6. To do that, set CATALINA_HOME and run this:<jsfunit checkout>/jboss-jsfunit-examples/jboss-jsfunit-examples-icefaces> mvn -Ptest,tomcat6x,mojarra1.2
That will run with Mojarra 1.2_08.
You can also deploy the WAR directly to Tomcat 6 and then go to the broswer and do:
http://localhost:8080/jboss-jsfunit-examples-icefaces/ServletTestRunner?suite=org.jboss.jsfunit.icefacestest.AddressFormTest
I have made some more changes to JSFClientSession. Instead of keeping a reference to the current Page object, I always delegate to WebClient to get the current page. That way, I let HTMLUnit keep up with all the window logic and I don't have to worry about it. This seems to work very well and makes JSFClientSession an even thinner wrapper.
If you do need to switch focus to a different window then you need to use the HTMLUnit API instead of calling something on JSFUnit.
So with those changes, it looks like we are past our initial problem of working on the wrong Page object from the wrong window. I can fill out the form as you see in the latest version of AddressFormTest. Now the only problem is that it appears HTMLUnit is having a problem with the ICEfaces javascript. None of the ICEfaces javascript is working with HTMLUnit.
Furthermore, when I try to log events using FireBug, I get "Permission denied to get property XULElement.accessKey"
Stan -
34. Re: [IceFaces] NullPointerException when accessing JSFServer
ssilvert Feb 6, 2009 9:35 AM (in response to elgwappo)"Lightguard" wrote:
MyFaces 1.1 is supported, 1.2 is not.
If ICEfaces supports MyFaces 1.1, is it safe to assume that the AddressForm demo is the problem and not ICEfaces core?
Stan -
35. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 6, 2009 10:50 AM (in response to elgwappo)It's possible. I think they also have a facelets demo, that may work out better, or try the Seam component showcase, that would probably give us the best coverage as it uses all of their components.
-
36. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 6, 2009 10:53 AM (in response to elgwappo)"stan.silvert@jboss.com" wrote:
It does run OK against Tomcat 6. To do that, set CATALINA_HOME and run this:<jsfunit checkout>/jboss-jsfunit-examples/jboss-jsfunit-examples-icefaces> mvn -Ptest,tomcat6x,mojarra1.2
Tried that, got this exception using this command: mvn -Ptest,tomcat6x,mojarra1.2 -Dhome=~/servers/apache-tomcat-6.0.16/
Is the property called something else?[INFO] ------------------------------------------------------------------------ [ERROR] FATAL ERROR [INFO] ------------------------------------------------------------------------ [INFO] You must set the mandatory [home] property [INFO] ------------------------------------------------------------------------ [INFO] Trace org.codehaus.cargo.container.ContainerException: You must set the mandatory [home] property at org.codehaus.cargo.container.spi.AbstractInstalledLocalContainer.verifyHome(AbstractInstalledLocalContainer.java:449) at org.codehaus.cargo.container.spi.AbstractInstalledLocalContainer.verify(AbstractInstalledLocalContainer.java:439) at org.codehaus.cargo.container.spi.AbstractLocalContainer.start(AbstractLocalContainer.java:141) at org.codehaus.cargo.maven2.ContainerStartMojo.doExecute(ContainerStartMojo.java:61) at org.codehaus.cargo.maven2.AbstractCargoMojo.execute(AbstractCargoMojo.java:266) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129) at org.apache.maven.cli.MavenCli.main(MavenCli.java:287) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
-
37. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 6, 2009 10:57 AM (in response to elgwappo)Looks like you can't edit your posts. I figured it out. CATALINA_HOME :)
-
38. Re: [IceFaces] NullPointerException when accessing JSFServer
ssilvert Feb 6, 2009 10:58 AM (in response to elgwappo)You have to set CATALINA_HOME. I set it in my settings.xml file like this:
<profile> <id>tomcat6x</id> <properties> <CATALINA_HOME>/C:/projects/jbosslabs/containers/apache-tomcat-6.0.16</CATALINA_HOME> </properties> </profile>
But I think it will work if you just set the CATALINA_HOME environment variable.
Stan -
39. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 6, 2009 11:00 AM (in response to elgwappo)Now I've got this:
java.lang.NoSuchMethodError: org.apache.xpath.compiler.FunctionTable.installFunction(Ljava/lang/String;Ljava/lang/Class;)I at com.gargoylesoftware.htmlunit.html.xpath.XPathAdapter.initFunctionTable(XPathAdapter.java:52) at com.gargoylesoftware.htmlunit.html.xpath.XPathAdapter.<init>(XPathAdapter.java:66) at com.gargoylesoftware.htmlunit.html.xpath.XPathUtils.evaluateXPath(XPathUtils.java:129) at com.gargoylesoftware.htmlunit.html.xpath.XPathUtils.getByXPath(XPathUtils.java:73) at com.gargoylesoftware.htmlunit.javascript.host.HTMLCollection.computeElements(HTMLCollection.java:245) at com.gargoylesoftware.htmlunit.javascript.host.HTMLCollection.getElements(HTMLCollection.java:232) at com.gargoylesoftware.htmlunit.javascript.host.HTMLCollection.get(HTMLCollection.java:218) at com.gargoylesoftware.htmlunit.javascript.host.HTMLDocument.jsxFunction_getElementById(HTMLDocument.java:901) at com.gargoylesoftware.htmlunit.javascript.host.Window.get(Window.java:856) at org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:1616) at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1437) at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1423) at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3027) at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2487) at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:164) at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398) at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:192) at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065) at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:175) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$5.doRun(JavaScriptEngine.java:403) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:507) at org.mozilla.javascript.Context.call(Context.java:515) at org.mozilla.javascript.ContextFactory.call(ContextFactory.java:507) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:412) at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1004) at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:358) at com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:212) at com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:238) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:569) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:523) at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:210) at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:329) at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:993) at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:896) at org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:2893) at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:1954) at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:893) at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:495) at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:448) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:771) at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:252) at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:127) at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:101) at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:439) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:327) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:384) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:369) at org.jboss.jsfunit.framework.SimpleInitialRequestStrategy.doInitialRequest(SimpleInitialRequestStrategy.java:48) at org.jboss.jsfunit.framework.WebClientSpec.doInitialRequest(WebClientSpec.java:244) at org.jboss.jsfunit.jsfsession.JSFSession.<init>(JSFSession.java:83) at org.jboss.jsfunit.jsfsession.JSFSession.<init>(JSFSession.java:58) at org.jboss.jsfunit.icefacestest.AddressFormTest.testAddressForm(AddressFormTest.java:55)
I'm running on Mac OSX 10.5.6 with JDK 6. svn up at the root, mvn intstall, then ran the test. -
40. Re: [IceFaces] NullPointerException when accessing JSFServer
ssilvert Feb 6, 2009 1:02 PM (in response to elgwappo)You have to build with the right profiles for Tomcat 6.
mvn clean mvn -Ptest,tomcat6x,mojarra1.2
That error looks like it maybe has the wrong version of Xalan? The war should have xalan-2.7.0.jar.
Stan -
41. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 6, 2009 1:13 PM (in response to elgwappo)Hm, same thing :(
-
42. Re: [IceFaces] NullPointerException when accessing JSFServer
ssilvert Feb 6, 2009 1:59 PM (in response to elgwappo)What version of Tomcat 6? Can you find another xalan in the classpath?
Stan -
43. Re: [IceFaces] NullPointerException when accessing JSFServer
lightguard Feb 12, 2009 12:47 PM (in response to elgwappo)Tomcat 6.0.16 I thought I'd try it with JBoss when I get a chance, work's been swamping me.
-
44. Re: [IceFaces] NullPointerException when accessing JSFServer
ssilvert Feb 12, 2009 1:48 PM (in response to elgwappo)"Lightguard" wrote:
Tomcat 6.0.16 I thought I'd try it with JBoss when I get a chance, work's been swamping me.
OK. To build for JBoss 5, you do:mvn clean mvn -Ptest,jboss5x,jee5
If you use JBoss 5, always leave XercesImpl and Xalan out of the WAR.
Stan