| Author |
Message |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 18/04/2008 13:46:01
|
leleboy

Joined: 31/08/2007 00:00:00
Messages: 20
Offline
|
We are using icefaces 1.7 with Jboss 4.2.2GA and Tomcat 6.
Since we changed from 1.6.2 to 1.7 when the application throws an exception (e.g.: NullPointerException) instead of showing our Error Page, a blank page is shown with the following text: WQ9t9D5mZid5iFTYCszfw:1:marker-script'.asElement().parentNode.bridge = 'placeholder';
We did not have this problem with 1.6.2 (the same error pages were shown properly)
What could be the problem we are facing here?
exceptionErrorPage.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
<title></title>
</head>
<body>
<jsp:forward page="exceptionErrorPage.iface" />
</body>
</html>
exceptionErrorPage.jspx
<f:view xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ice="http://www.icesoft.com/icefaces/component">
<ice:outputDeclaration doctypeRoot="HTML" doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN" doctypeSystem="http://www.w3.org/TR/html4/loose.dtd"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
<title><ice:outputText value="#{labels.get['pageTitle']}" /></title>
<ice:outputStyle href="../resources/css/icefaces_style.css"/>
</head>
<body>
<ice:form>
<ice:outputText value="An error has ocurred"/>
</ice:form>
</body>
</html>
</f:view>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>test</display-name>
<description>test</description>
<context-param>
<param-name>com.icesoft.faces.debugDOMUpdate</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
<description>
State saving method: "client" or "server" (= default)
See JSF Specification 2.5.2
</description>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.jspx</param-value>
</context-param>
<context-param>
<param-name>com.icesoft.faces.uploadDirectory</param-name>
<param-value>upload</param-value>
</context-param>
<!-- concurrent DOM views -->
<context-param>
<param-name>com.icesoft.faces.concurrentDOMViews</param-name>
<param-value>false</param-value>
</context-param>
<!-- Asynchronous Updates -->
<context-param>
<param-name>com.icesoft.faces.synchronousUpdate</param-name>
<param-value>false</param-value>
</context-param>
<!--Compression-->
<context-param>
<param-name>com.icesoft.faces.compressResources</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>com.icesoft.faces.util.event.servlet.ContextEventRepeater</listener-class>
</listener>
<!-- file upload Servlet -->
<servlet>
<servlet-name>uploadServlet</servlet-name>
<servlet-class>com.icesoft.faces.component.inputfile.FileUploadServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>Persistent Faces Servlet</servlet-name>
<servlet-class>com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<servlet>
<servlet-name>Blocking Servlet</servlet-name>
<servlet-class>com.icesoft.faces.webapp.xmlhttp.BlockingServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<!-- extension mapping -->
<servlet-mapping>
<servlet-name>uploadServlet</servlet-name>
<url-pattern>/uploadHtml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Persistent Faces Servlet</servlet-name>
<url-pattern>*.iface</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Persistent Faces Servlet</servlet-name>
<url-pattern>/xmlhttp/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Blocking Servlet</servlet-name>
<url-pattern>/block/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>secure/default.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/exceptionErrorPage.iface</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/exceptionErrorPage.iface</location>
</error-page>
</web-app>
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 18/04/2008 14:06:17
|
philip.breau

Joined: 08/05/2006 00:00:00
Messages: 2675
Offline
|
Hi,
The bridge is disposed and shuts down on a server error, so trying to forward to another another ICEfaces page won't work. Try using a redirect instead of a forward in your jsp.
Philip
|
. |
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 18/04/2008 14:36:46
|
leleboy

Joined: 31/08/2007 00:00:00
Messages: 20
Offline
|
Thanks for your quick answer, but we tried this and did not work. Here is our code:
exceptionErrorPage.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
<title></title>
</head>
<body>
<% response.sendRedirect("/exceptionErrorPage.iface"); %>
</body>
</html>
Any idea?
Leleboy
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 21/04/2008 08:05:21
|
VHristov
Joined: 07/02/2008 00:00:00
Messages: 10
Offline
|
Hi all,
We just switched from icefaces 1.6.2 to 1.7.0 and we have the same problem. After an exception is thrown by the application, the user should be redirected to a error page, but all we get is:
Code:
="9uyiWfbBrAFvo2sP9fRWvQ:1:marker-script" type="text/javascript">'9uyiWfbBrAFvo2sP9fRWvQ:1:marker-script'.asElement().parentNode.bridge = 'placeholder';
I tried changing the contents of the error page and now it's as simple as Code:
<html>
<body>
error
</body>
</html>
but still the above mentioned output is shown.
The web.xml says:
Code:
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/exception.iface</location>
</error-page>
Following is the exception that is thrown
Code:
Apr 21, 2008 2:59:14 PM com.sun.faces.lifecycle.ProcessValidationsPhase execute
WARNING: javax.el.PropertyNotFoundException: /usermanagement/updateUser.xhtml @25,72 value="#{UsermanagementController.tmpUser.name}": Target Unreachable, 'tmpUser' returned null
javax.faces.el.PropertyNotFoundException: javax.el.PropertyNotFoundException: /usermanagement/updateUser.xhtml @25,72 value="#{UsermanagementController.tmpUser.name}": Target Unreachable, 'tmpUser' returned null
at javax.faces.component.ValueBindingValueExpressionAdapter.getType(ValueBindingValueExpressionAdapter.java:81)
at com.icesoft.faces.renderkit.dom_html_basic.DomBasicInputRenderer.getConvertedValue(DomBasicInputRenderer.java:89)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:943)
at javax.faces.component.UIInput.validate(UIInput.java:868)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1078)
at javax.faces.component.UIInput.processValidators(UIInput.java:670)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIForm.processValidators(UIForm.java:229)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:672)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:17)
at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCyclePartial(ReceiveSendUpdates.java:64)
at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:40)
at com.icesoft.faces.webapp.http.core.ViewBoundServer.service(ViewBoundServer.java:65)
at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:44)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer$Matcher.serviceOnMatch(PathDispatcherServer.java:50)
at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:19)
at com.icesoft.faces.webapp.http.servlet.ContinuationAdaptingServlet.service(ContinuationAdaptingServlet.java:29)
at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:29)
at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:139)
at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:35)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:79)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
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:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:343)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:54)
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.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Does anyone have a clue how we can fix this?
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 22/04/2008 09:41:57
|
philip.breau

Joined: 08/05/2006 00:00:00
Messages: 2675
Offline
|
Looks like this is a regression in 1.7 (http://jira.icefaces.org/browse/ICE-3007). Should be fixed now if you want to grab the head off of svn.
Philip
|
. |
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 22/04/2008 10:13:33
|
leleboy

Joined: 31/08/2007 00:00:00
Messages: 20
Offline
|
Thank you very much Philip!
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 22/04/2008 10:37:42
|
VHristov
Joined: 07/02/2008 00:00:00
Messages: 10
Offline
|
Yes - that worked indeed! Thanks! It now works even better than in 1.6.2 ;)
Cheers
Vassil
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 24/04/2008 04:11:12
|
landbo
Joined: 26/02/2007 00:00:00
Messages: 32
Offline
|
I am using the Eclipse plugin.
Can you tell me how I could include/integrate the version that works?
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 24/04/2008 04:40:56
|
VHristov
Joined: 07/02/2008 00:00:00
Messages: 10
Offline
|
Well I'm using subversive and you probably have subclipse, so I can't tell you how exactly to do this. But basically you have to create a new svn location (the url is http://anonsvn.icefaces.org/repo). From there you need to check out icefaces/trunk/icefaces as a local project and when you're done start the ant script in the root folder (build.xml) -> done. That's at least how I did it and it worked :) Hope it works for you too!
Philip, when do you plan to release 1.7.1? While building the HEAD version myself is ok while we're in development, but it's not an acceptable solution for an official release :(
Cheers
Vassil
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 25/04/2008 07:01:01
|
VHristov
Joined: 07/02/2008 00:00:00
Messages: 10
Offline
|
Hi again,
unfortunately it turned out that the above mentioned solution didn't work after all. While the version I got (rev. 16477) worked fine for the exception handling, today I noticed a weird behaviour: on a certain (not on all) xhtml page I have a data table with a list of objects that looks something like that:
Code:
<ice:dataTable value="#{SomeController.someObjectList}" var="item">
<ice:rowSelector multiple="false" toggleOnClick="false" />
<ice:column>
<f:facet name="header">ID</f:facet>
<ice:commandLink action="#{SomeController.getObjectDetails}">
#{item.id}
<f:setPropertyActionListener target="#{SomeController.currentObject}" value="#{item}"/>
</ice:commandLink>
</ice:column>
<ice:column>
<f:facet name="header">Name</f:facet>
<ice:commandLink action="#{SomeController.getObjectDetails}">
#{item.name}
<f:setPropertyActionListener target="#{SomeController.currentObject}" value="#{item}"/>
</ice:commandLink>
</ice:column>
</ice:dataTable>
However when I click on one of the command links (the ones in the table or in navigation) nothing happens. (Yet when I click on a command button, all works fine). I've put a System.out line in the getObjectDetails method, which was not printed. Unfortunately I cannot give you any more information on that one, since I'm absolutely cluesless myself. The only thing is that I get the following exception, when refreshing the page multiple times:
Code:
java.lang.NullPointerException
org.apache.catalina.connector.Request.setAttribute(Request.java:1424)
org.apache.catalina.connector.RequestFacade.setAttribute(RequestFacade.java:503)
com.icesoft.faces.webapp.http.servlet.ServletRequestAttributes.setAttribute(ServletRequestAttributes.java:28)
com.icesoft.faces.webapp.http.servlet.ServletEnvironmentRequest.setAttribute(ServletEnvironmentRequest.java:216)
com.icesoft.faces.webapp.http.servlet.ServletRequestAttributeMap.setAttribute(ServletRequestAttributeMap.java:25)
com.icesoft.faces.context.AbstractCopyingAttributeMap.putAll(AbstractCopyingAttributeMap.java:30)
com.icesoft.faces.webapp.http.servlet.ServletExternalContext.updateOnPageLoad(ServletExternalContext.java:134)
com.icesoft.faces.context.View$6.servlet(View.java:123)
com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.detectEnvironment(ServletRequestResponse.java:222)
com.icesoft.faces.context.View.updateOnPageRequest(View.java:111)
com.icesoft.faces.webapp.http.core.SingleViewServer.service(SingleViewServer.java:43)
com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer$Matcher.serviceOnMatch(PathDispatcherServer.java:50)
com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:19)
com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19)
com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:29)
com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:139)
com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:35)
com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:79)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
I thought that it could be a compile error or something or that you already fixed this, so I checked out the newest version (16498) and indeed the error did not occur any more. However, exception handling doesn't work for me again. When an error is thrown during executionPhase, I get the pop-up saying 'Connection to server lost. Hit the browser refresh button, or the button below' or something like that. And consequently refreshing the same page just keeps on throwing the same error. (The page I'm refering to contains a field bound to an objects name, yet the object is null. So when I enter some text in the field and change the focus, the app tries to call the setter of the objects that is null).
Do I have another option, except switching back to 1.6.2? :(
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 25/04/2008 08:16:07
|
Baleyba
Joined: 16/11/2006 00:00:00
Messages: 110
Offline
|
Hi,
I get the same problem :(
I get the svn version from the day. revision 16510
I had the same issue than you but now redirection don't work again. I get the ICEfaces component status to this: http://component-showcase.icefaces.org/component-showcase/xmlhttp/css/xp/css-images/connect_disconnected.gif
And no redirection to my error.jsp file.
It was working before this version 1.7.0.
regards
Bal.
|
JBoss 4.2.3 | Java 1.6.0_16 | IceFaces 1.8.2 |
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 16/05/2008 04:10:01
|
Kylt
Joined: 21/01/2008 00:00:00
Messages: 10
Offline
|
Hi all,
we have the same issue as well.
I am sorry if I haven't read all news but is there any update for version 1.7.1 release.
Edit: Or at least a useable solution?
|
=========
Sorry for spelling misstakes -> young German developer (= |
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 19/06/2008 06:40:18
|
sixtyfour
Joined: 18/06/2008 00:00:00
Messages: 1
Offline
|
hi folks
we had exactly the same stack trace as shown above.
the problem was the name of faces servlet in web.xml. we declared it as "FacesServlet" instead of "Faces Servlet".
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
ICEfaces seems to rely on the correct name.
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 23/09/2008 17:39:48
|
jleidgen
Joined: 25/04/2008 00:00:00
Messages: 19
Offline
|
Hi,
we are still having some problems with this in 1.7.1 (using facelets):
When using a JSF/Icefaces .jspx-Page as the <location> of the <error-page>, it seems to work fine, all exceptions get caught and the user only sees the error-page. In some situations we may want to display some information coming from the exception, like it's message (Exception.getMessage()).
But: I haven't found a way to access any information about the exception from inside the error-page .jspx.
Most information i find on the net on this is still talking about basic JSP and they always use #{exception}, which doesn't seem to be defined in my .jspx, even when used as an error-page.
Then i tried using a plain old servlet instead, and this is where it got really funky: When using my servlet-path (e.g. "/ErrorServlet") as the location of the error-page, my servlet never was called when an exception was thrown. Instead i am back to the container default-exception-page that was displayed without any error-pages. Sometimes, when i hit reload often enough, the request seems to go through to my servlet, but it never does on the first try, when the exception really happens.
So, basically, all i want is a way to access information about/from the exception that was thrown, be it from inside the .jspx-page, a backing bean, a servlet, a plain old jsp-page or whatever. Just some way to show an error-page that is _both_ user-friendly _and_ still contains some useful information from the exception.
Is this somehow possible? Any hints?
Regards,
jleidgen
|
|
|
 |
![[Post New]](/JForum/templates/default/images/icon_minipost_new.gif) 23/09/2008 19:21:14
|
ansel1

Joined: 07/11/2006 00:00:00
Messages: 85
Offline
|
We were able to access the exception object from the request scope, under the key "javax.servlet.error.exception". Works great.
|
|
|
 |
|
|