Momenteel ben ik bezig om een custom JSF component te schrijven. Dit component wordt een lookupField dat een <div> op de pagina toont, een AJAX request doet naar een LookupServlet en waaruit vervolgens een rij (id) gekozen kan worden. De AJAX request wordt pas gedaan wanneer de gebruiker op een knop drukt en dus niet bij het laden van de pagina! Het AJAX mechanisme werkt na behoren. De LookupServlet retourneert xml dan de hand van een opgegeven key. Deze actie geeft in zowel IE als FF geen stacktrace.
Mijn component LookupComponent extend de javax.faces.component.UIInput klasse. En ik delegeer de rendering van het component naar mijn eigen LookupRenderer
Het volgende probleem doet zich voor:
Op het moment dat ik een mijn jsp open in de browser (uiteraard via de FacesServlet) wordt mijn component volledig getoond in zowel Internet Explorer als FireFox. Echter krijg ik een stacktrace in IE en wordt de aanroep van mijn methodes beëindigd.
FF output
IE output
Ik heb mijn probleem al zoveel mogelijk proberen in te kapselen door onder andere het javascript te verwijderen, en een flink aantal sysouts te doen.
Heeft iemand enig idee wat het probleem hier kan zijn? Of heeft iemand ooit zelf een component geklust en hetzelfde meegemaakt?
Mijn component LookupComponent extend de javax.faces.component.UIInput klasse. En ik delegeer de rendering van het component naar mijn eigen LookupRenderer
Het volgende probleem doet zich voor:
Op het moment dat ik een mijn jsp open in de browser (uiteraard via de FacesServlet) wordt mijn component volledig getoond in zowel Internet Explorer als FireFox. Echter krijg ik een stacktrace in IE en wordt de aanroep van mijn methodes beëindigd.
FF output
code:
1
2
3
4
5
6
| LookupComponent: restoreState started LookupRenderer: encodeInput started LookupRenderer: encodeInput finished LookupComponent: restoreState started LookupRenderer: encodeInput started LookupRenderer: encodeInput finished |
IE output
code:
Het vreemde is dat het component gewoon werkt en in FF ik helemaal geen fouten krijg. Wanneer ik meerdere keren mijn componenten op de pagina plaats gaat het bij het laatte component fout.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| LookupComponent: restoreState started
LookupRenderer: encodeInput started
LookupRenderer: encodeInput finished
27-Apr-2006 11:33:31 javax.faces.webapp.UIComponentTag setupResponseWriter
SEVERE: Faces context not found. getResponseWriter will fail. Check if the FacesServlet has been initialized at all in your web.xml.
27-Apr-2006 11:33:31 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at javax.faces.webapp.UIComponentTag.setupResponseWriter(UIComponentTag.java:615)
at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:217)
at org.apache.myfaces.taglib.core.ViewTag.doStartTag(ViewTag.java:71)
at org.apache.jsp.index_jsp._jspx_meth_f_view_0(index_jsp.java:153)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:121)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at ........ |
Ik heb mijn probleem al zoveel mogelijk proberen in te kapselen door onder andere het javascript te verwijderen, en een flink aantal sysouts te doen.
Heeft iemand enig idee wat het probleem hier kan zijn? Of heeft iemand ooit zelf een component geklust en hetzelfde meegemaakt?
[ Voor 5% gewijzigd door dip op 27-04-2006 11:52 ]
It's scientifically known, that base improves the tase of cheezes!