The src attribute of the img element requires the URL of the image, not the image contents. On Mar 16, 2013 7:46 PM, "Bela Takacs" <bela.takacs....@gmail.com> wrote:
> Hi All, > > I am writing my very first program using Tapestry, and I've got my > first problem... > > I want to display an image in my Index.tml template, so I'm trying to > use two files (InlineStreamResponse.java and JPEGInline.java) from > here: > http://wiki.apache.org/tapestry/Tapestry5HowToStreamAnExistingBinaryFile > > Firefox an IE can display my template but neither Firefox nor IE can > display the images (I cannot see any images on the screen). I got the > following error message in my Eclipse/Jetty console > (IllegalArgumentException: '@' character is not valid), but I do not > use any '@' character: > > [INFO] AppModule.TimingFilter Request time: 2 ms > [INFO] AppModule.TimingFilter Request time: 3 ms > [ERROR] TapestryModule.RequestExceptionHandler Processing of request > failed with uncaught exception: Input string > 'com.example.tutorial.pictureHandler.JPEGInline@608a6351' is not > valid; the character '@' at position 47 is not valid. > java.lang.IllegalArgumentException: Input string > 'com.example.tutorial.pictureHandler.JPEGInline@608a6351' is not > valid; the character '@' at position 47 is not valid. > at > org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:144) > at $URLEncoder_6d6aa2f29b30.decode(Unknown Source) > at > org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:92) > at $ContextPathEncoder_6d6aa2f29b18.decodePath(Unknown Source) > at > org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.checkIfPage(ComponentEventLinkEncoderImpl.java:501) > at > org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.decodePageRenderRequest(ComponentEventLinkEncoderImpl.java:475) > at > org.apache.tapestry5.internal.services.linktransform.LinkTransformerInterceptor.decodePageRenderRequest(LinkTransformerInterceptor.java:68) > at > $ComponentEventLinkEncoder_6d6aa2f29b0c.decodePageRenderRequest(Unknown > Source) > at > org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:41) > at $Dispatcher_6d6aa2f29b0d.dispatch(Unknown Source) > at $Dispatcher_6d6aa2f29b07.dispatch(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302) > at > org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) > at $RequestHandler_6d6aa2f29b08.service(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) > at $RequestHandler_6d6aa2f29b08.service(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) > at $RequestHandler_6d6aa2f29b08.service(Unknown Source) > at > org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) > at $RequestHandler_6d6aa2f29b08.service(Unknown Source) > at > com.example.tutorial.services.AppModule$1.service(AppModule.java:89) > at $RequestFilter_6d6aa2f29b02.service(Unknown Source) > at $RequestHandler_6d6aa2f29b08.service(Unknown Source) > at > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) > at > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) > at > org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) > at > org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) > at $RequestHandler_6d6aa2f29b08.service(Unknown Source) > at $RequestHandler_6d6aa2f29afb.service(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253) > at > org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) > at $HttpServletRequestHandler_6d6aa2f29afd.service(Unknown Source) > at > org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > at $HttpServletRequestFilter_6d6aa2f29af9.service(Unknown Source) > at $HttpServletRequestHandler_6d6aa2f29afd.service(Unknown Source) > at > org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852) > at $HttpServletRequestHandler_6d6aa2f29afd.service(Unknown Source) > at $HttpServletRequestHandler_6d6aa2f29af8.service(Unknown Source) > at > org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) > at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) > at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) > at > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > [INFO] AppModule.TimingFilter Request time: 28 ms > > > Further informations from my pom.xml: > <tapestry-release-version>5.3.6</tapestry-release-version> > > <artifactId>maven-jetty-plugin</artifactId><version>6.1.16</version> > > > In my template, I tried these two things: > <img src="${getImageThumb()}" /> > <img src="${imageThumb}" /> > > As a result, I got the following URLs in my Index.tml template (in both > cases): > <img src="com.example.tutorial.pictureHandler.JPEGInline@24ca1465"/> > > > This is the relevant part of my Index.java: > ... > public StreamResponse getImageThumb() { > System.out.println("Trying to do that...."); > try { > return new JPEGInline(new FileInputStream("d:\\Hello.jpg"), > "d:\\Hello.jpg"); > } catch (FileNotFoundException e) { > System.out.println("The file (jpg) cannot be found."); > e.printStackTrace(); > } catch (Exception ex) { > System.out.println("Other problem."); > } > return null; > } > > > > Question: What does the exception, that I copy-pasted above, mean? And > what should I do? > > > Thanks a lot, > Bela > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >