Hello,

I got the same problem using a user defined interceptor.
Without ICEfaces, it's running fine, but with ICEfaces I get:

2007-03-01 14:02:06,140 ERROR 
[com.icesoft.faces.facelets.D2DFaceletViewHandler] Problem in renderResponse: 
/moses/image.xhtml Not Found in ExternalContext as a Resource
  | java.io.FileNotFoundException: /moses/image.xhtml Not Found in 
ExternalContext as a Resource
  |     at 
com.sun.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:114)
  |     at 
com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:86)
  |     at 
com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:259)
  |     at 
com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
  |     at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
  |     at 
com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCycle(BlockingServlet.java:457)
  |     at 
com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates(BlockingServlet.java:444)
  |     at 
com.icesoft.faces.webapp.xmlhttp.BlockingServlet.executeRequest(BlockingServlet.java:324)
  |     at 
com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:186)
  |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
  |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | ...
  | 

The configuration in web.xml looks like this:
    <lifecycle>
  |         <!-- Phase listener needed to display images via beans -->
  |         
<phase-listener>de.classname.webfrontend.ImagePhaseListener</phase-listener>
  |         <!-- Phase listener needed for all Seam applications -->
  |         
<phase-listener>org.jboss.seam.jsf.SeamPhaseListener</phase-listener>
  |     </lifecycle>
  | 

The phase listener is reading a thumbnail from the database for web output:
package de.classpath.webfrontend;
  | 
  | import java.io.IOException;
  | 
  | import javax.ejb.Stateless;
  | import javax.faces.context.FacesContext;
  | import javax.faces.event.PhaseEvent;
  | import javax.faces.event.PhaseId;
  | import javax.faces.event.PhaseListener;
  | import javax.naming.Context;
  | import javax.naming.InitialContext;
  | import javax.naming.NamingException;
  | import javax.servlet.http.HttpServletRequest;
  | import javax.servlet.http.HttpServletResponse;
  | import de.classpath.RefObjectBeanLocal;
  | 
  | @Stateless
  | public class ImagePhaseListener implements PhaseListener {
  | 
  |     private static final long serialVersionUID = 6849469082858433451L;
  |     // Praefix used for URL: /moses/image.seam
  |     public final static String IMAGE_VIEW_ID = "image";
  | 
  |     // Beans
  |     RefObjectBeanLocal refObjectBean = null;
  | 
  |     public void afterPhase(PhaseEvent event) {
  |             FacesContext context = event.getFacesContext();
  |             String viewId = context.getViewRoot().getViewId();
  |             if (viewId.indexOf(IMAGE_VIEW_ID) != -1) {
  |                     handleImageRequest(context);
  |             }
  |     }
  | 
  |     public void beforePhase(PhaseEvent event) {
  |             //Do nothing here...
  |     }
  | 
  |     public PhaseId getPhaseId() {
  |             return PhaseId.RESTORE_VIEW;
  |     }
  | 
  |     private void handleImageRequest(FacesContext context) {
  |             byte [] imagedata = null;
  |             Integer refDataId = null;
  |             Integer thumbnailtypeId = null;
  |             String param;
  | 
  |             HttpServletRequest request = (HttpServletRequest) 
context.getExternalContext().getRequest();
  |             HttpServletResponse response = (HttpServletResponse) 
context.getExternalContext().getResponse();
  | 
  |     
  |                     // Read thumbnail from database via bean,
  |                     // because EntityManager is not supported in output 
beans!!!
  |                     if (refObjectBean == null) {
  |                             try {
  |                             Context namingContext = new InitialContext();
  |                             refObjectBean = (RefObjectBeanLocal) 
namingContext.lookup("myproject/RefObjectBean/local");
  |                             } catch (NamingException exception) {
  |                                     throw new RuntimeException(exception);
  |                             }
  |                     }
  |                     if (refObjectBean == null) throw new 
RuntimeException("refObjectBean ist null!");
  |     
  |                     // Parse request parameters
  |                     param = request.getParameter("refDataId");
  |                     if (param != null) {
  |                             refDataId = Integer.parseInt(param);
  |                     }
  |                     param = request.getParameter("thumbnailtypeId");
  |                     if (param != null) {
  |                             thumbnailtypeId = Integer.parseInt(param);
  |                     }
  |     
  |                     // Get image
  |                     if (refDataId != null)
  |                     {
  |                             if (thumbnailtypeId == null)
  |                             {
  |                                     imagedata = 
refObjectBean.getImagedata(refDataId);
  |                             }
  |                             else
  |                             {
  |                                     imagedata = 
refObjectBean.getThumbnail(refDataId, thumbnailtypeId);
  |                             }
  |                     }
  |     
  | 
  |                     try {
  |                             response.setContentLength(imagedata.length);
  |                             response.getOutputStream().write(imagedata);
  |                     } catch (IOException exception) {
  |                             throw new RuntimeException(exception);
  |                     }
  |                     context.responseComplete();
  |     }
  |    
  | }

I can't understand the following things:

1) The image is displayed using the URL image.seam, but the error message shows 
image.xhtml

2) The page is displayed completely with all thumbnails, but when I try to 
leave the page via a trivial link, the error occurs. There is no reason why to  
call the method again...

Any ideas?

Greetings
  Michael

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4024248#4024248

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4024248
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to