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
>
>

Reply via email to