Matthew, this seems like a glassfish question... if you can "mount" local
system dirs in glassfish as web dirs, for example:
alternatedocroot_1 from=/uploads/*
dir=/Users/insane/path/under/netbeans/glassfish/domain1/uploads/Videos

would you access that content using http://www.mysite.com/uploads/*

Again, I'm not sure how that mounting rule in glassfish works, it might be
relative to your app root, but it seems it should work and just be treated
as a normal path -- in the case of the previous fellow I understood his
situation to be that he *had* to host resources out of a system directory
that wasn't web-addressable. I believe in your case they are web addressable
if that glassfish feature mounts them up as such?

-R

On Fri, Jan 29, 2010 at 12:17 PM, Matthew J <[email protected]> wrote:

> Question, as I am dealing with a similar issue, except I save my file to my
> glassfish directory (ie: glassfish/domains/domain1/uploads/Videos/...). I
> can't seem to find the url though I have tried many different types of
> urls...
>
> For the record
>
> ((WebApplication)WebApplication.get()).getServletContext().getRealPath(newFile.getCanonicalPath())
> returns:
>
> /Users/msj121/NetBeansProjects/WebBuilder/dist/gfdeploy/WebBuilder/WebBuilder-war_war/Applications/Programs/NetBeans/sges-v3/glassfish/domains/domain1/uploads/Videos/...
>
>
> btw, for those using Glassfish you can have urls to physical hard drive
> space even not in the context root by using an alternatedocroot (ie:
> "alternatedocroot_1 from=/uploads/* dir=/").
>
>
> I assume my directory is in the context root and I should be able to find
> it, no?
>
>
> On 29-Jan-10, at 12:47 AM, Ernesto Reinaldo Barreiro wrote:
>
>  Hi Riyad,
>>
>> I didn't get offended by your message... which otherwise raised a very
>> valid
>> issue.
>>
>> Cheers,
>>
>> Ernesto
>>
>> On Thu, Jan 28, 2010 at 5:26 PM, Riyad Kalla <[email protected]> wrote:
>>
>>  Ernesto,
>>>
>>> Sorry about that -- I didn't mean to imply your impl was back, that was
>>> more
>>> directed at Francois along the lines of "that's a lot of overhead, are
>>> you
>>> sure you need to do that?" -- but now that I understand what his use-case
>>> is
>>> (saw his last reply about /usr/ext/img/<IMAGES HERE>) I get it. I was
>>> thinking they were under /webapp/images.
>>>
>>> I'll go back to sitting in my corner ;)
>>>
>>> -R
>>>
>>> On Wed, Jan 27, 2010 at 9:54 PM, Ernesto Reinaldo Barreiro <
>>> [email protected]> wrote:
>>>
>>>  Sure it is overhead but he wanted to serve images from a folder not
>>>> under application
>>>> context root directory... Then, you have to serve them somehow? The
>>>>
>>> options
>>>
>>>> I see are
>>>>
>>>> 1-A dedicated servlet?
>>>> 2-With Wicket... and thats what the code shows... and for sure it can be
>>>> done in a simpler way...
>>>>
>>>> A would try to use 1. As then Wicket would not have to serve the images.
>>>>
>>>> Regards,
>>>>
>>>> Ernesto
>>>>
>>>> On Wed, Jan 27, 2010 at 9:43 PM, Riyad Kalla <[email protected]> wrote:
>>>>
>>>>  This seems like adding a large amount of overhead to an image-heavy
>>>>>
>>>> site
>>>
>>>> (e.g. image blog or something), I thought I read in Wicket in Action
>>>>>
>>>> that
>>>
>>>> WicketFilter ignored HTTP requests for non-wicket resources now and
>>>>>
>>>> passed
>>>>
>>>>> them through to the underlying server to handle avoiding the need to
>>>>>
>>>> remap
>>>>
>>>>> your wicket URLs to something like /app/* so you could have /images and
>>>>> other resources under root and not have them go through the filter.
>>>>>
>>>>> Is this not the case?
>>>>>
>>>>> On Wed, Jan 27, 2010 at 1:38 PM, Ernesto Reinaldo Barreiro <
>>>>> [email protected]> wrote:
>>>>>
>>>>>  Hi Francois,
>>>>>>
>>>>>> Following example works.....
>>>>>>
>>>>>> 1-Create this class anywhere you want need.
>>>>>>
>>>>>> package com.antilia.demo.manager.img;
>>>>>>
>>>>>> import java.io.ByteArrayOutputStream;
>>>>>> import java.io.File;
>>>>>> import java.io.FileInputStream;
>>>>>> import java.io.IOException;
>>>>>> import java.io.InputStream;
>>>>>> import java.io.OutputStream;
>>>>>>
>>>>>> import org.apache.wicket.AttributeModifier;
>>>>>> import org.apache.wicket.markup.html.image.Image;
>>>>>> import
>>>>>>
>>>>> org.apache.wicket.markup.html.image.resource.DynamicImageResource;
>>>>
>>>>> import org.apache.wicket.model.Model;
>>>>>> import org.apache.wicket.protocol.http.WebApplication;
>>>>>> import org.apache.wicket.protocol.http.WebRequestCycle;
>>>>>> import org.apache.wicket.util.file.Folder;
>>>>>>
>>>>>> /**
>>>>>> *
>>>>>> * @author  Ernesto Reinaldo Barreiro ([email protected])
>>>>>> *
>>>>>> */
>>>>>> public abstract class MountedImageFactory {
>>>>>>
>>>>>>
>>>>>> static int BUFFER_SIZE = 10*1024;
>>>>>> /**
>>>>>>   * Copies one stream into the other..
>>>>>> * @param is source Stream
>>>>>> * @param os destination Stream
>>>>>> * */
>>>>>> static public void copy(InputStream is, OutputStream os) throws
>>>>>>
>>>>> IOException
>>>>>
>>>>>> {
>>>>>> byte[] buf = new byte[BUFFER_SIZE];
>>>>>> while (true) {
>>>>>> int tam = is.read(buf);
>>>>>> if (tam == -1) {
>>>>>> return;
>>>>>> }
>>>>>> os.write(buf, 0, tam);
>>>>>> }
>>>>>> }
>>>>>> public static  byte[] bytes(InputStream is) throws IOException {
>>>>>> ByteArrayOutputStream out = new ByteArrayOutputStream();
>>>>>> copy(is, out);
>>>>>> return out.toByteArray();
>>>>>> }
>>>>>> private static ImageFromFolderWebResource dynamicResource;
>>>>>> private static class ImageFromFolderWebResource extends
>>>>>> DynamicImageResource {
>>>>>> private static final long serialVersionUID = 1L;
>>>>>>
>>>>>> private File folder;
>>>>>> public ImageFromFolderWebResource(File folder, String mountPoint) {
>>>>>> this.folder = folder;
>>>>>> WebApplication.get().getSharedResources().add(mountPoint, this);
>>>>>> WebApplication.get().mountSharedResource(mountPoint,
>>>>>> "org.apache.wicket.Application/"+mountPoint);
>>>>>> }
>>>>>> @Override
>>>>>> protected byte[] getImageData() {
>>>>>> try {
>>>>>> String name =
>>>>>>
>>>>> WebRequestCycle.get().getRequest().getParameter("name");
>>>
>>>> return bytes(new FileInputStream(new
>>>>>>
>>>>> File(getFolder().getAbsolutePath()
>>>
>>>> +
>>>>
>>>>> System.getProperty("file.separator")+(name))));
>>>>>> } catch (Exception e) {
>>>>>> //TODO: do this properly
>>>>>> return null;
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> public File getFolder() {
>>>>>> return folder;
>>>>>> }
>>>>>> }
>>>>>> /**
>>>>>> * @return Folder from where images will be retrieved.
>>>>>> */
>>>>>> protected abstract Folder getFolder();
>>>>>> /**
>>>>>> * @return the URL to mount the dynamic WEB resource.e.g.
>>>>>> */
>>>>>> protected abstract String getMountPoint();
>>>>>> public Image createImage(String id, final String imageName) {
>>>>>> if(dynamicResource == null)
>>>>>> dynamicResource = new ImageFromFolderWebResource(getFolder(),
>>>>>> getMountPoint());
>>>>>> return new Image(id) {
>>>>>> private static final long serialVersionUID = 1L;
>>>>>>
>>>>>> @Override
>>>>>> protected void onBeforeRender() {
>>>>>> String path = WebRequestCycle.get().getRequest().getURL();
>>>>>> path = path.substring(0, path.indexOf('/'));
>>>>>> add(new AttributeModifier("src",true, new
>>>>>> Model<String>("/"+path+"/"+getMountPoint()+"?name="+imageName)));
>>>>>> super.onBeforeRender();
>>>>>> }
>>>>>> };
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> 2- Create a test page.
>>>>>>
>>>>>> import org.apache.wicket.markup.html.WebPage;
>>>>>> import org.apache.wicket.markup.html.image.Image;
>>>>>> import org.apache.wicket.util.file.Folder;
>>>>>>
>>>>>> /**
>>>>>> * @author  Ernesto Reinaldo Barreiro ([email protected])
>>>>>> *
>>>>>> */
>>>>>> public class TestPage extends WebPage {
>>>>>>
>>>>>> private static final MountedImageFactory IMAGE_FACTORY = new
>>>>>> MountedImageFactory() {
>>>>>> @Override
>>>>>> protected Folder getFolder() {
>>>>>> return new Folder("C:/temp/images");
>>>>>> }
>>>>>> @Override
>>>>>> protected String getMountPoint() {
>>>>>> return "test";
>>>>>> }
>>>>>> };
>>>>>> /**
>>>>>> *
>>>>>> */
>>>>>> public TestPage() {
>>>>>> Image img = IMAGE_FACTORY.createImage("img", "test.png");
>>>>>> add(img);
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> and the HTML markup
>>>>>>
>>>>>> <html xmlns:wicket="org.apache.wicket">
>>>>>> <head></head>
>>>>>> <body>
>>>>>>  <img wicket:id="img" alt="Test"/>
>>>>>> </body>
>>>>>> </html>
>>>>>>
>>>>>> 3- If you place a "test.png" on your "C:/temp/images" then you should
>>>>>>
>>>>> be
>>>>
>>>>> able to see the image when you hit the page.
>>>>>>
>>>>>> Hope you can adapt this to your needs?
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Ernesto
>>>>>>
>>>>>> 2010/1/27 François Meillet <[email protected]>
>>>>>>
>>>>>>  Thank for yours posts.
>>>>>>> I try the solutions, but  I can't figure out how to serve images as
>>>>>>>
>>>>>> static
>>>>>>
>>>>>>> images.
>>>>>>> F.
>>>>>>>
>>>>>>> Le 27 janv. 2010 à 16:10, Thomas Kappler a écrit :
>>>>>>>
>>>>>>>  On 01/27/10 15:57, Jonas wrote:
>>>>>>>>
>>>>>>>>> Have you tried the following:
>>>>>>>>>
>>>>>>>>> WebComponent image = new WebComponent("someWicketId");
>>>>>>>>> image.add(new SimpleAttributeModifier("src", "http://
>>>>>>>>>
>>>>>>>> .....jpg"));
>>>
>>>>  add(image);
>>>>>>>>>
>>>>>>>>> with markup
>>>>>>>>>
>>>>>>>>> <img wicket:id="someWicketId" />
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> that should work just fine...
>>>>>>>>>
>>>>>>>>> if you cannot hardcode the image url, you can use the following
>>>>>>>>> instead of SimpleAttributeModifier
>>>>>>>>> image.add(new AttributeModifier("src", true new
>>>>>>>>> AbstractReadOnlyModel<String>() {
>>>>>>>>>   public String getObject() {
>>>>>>>>>       String url = ... (fetch the image url from anywhere
>>>>>>>>>
>>>>>>>> else)
>>>
>>>>        // e.g. '/xxx/yyyy/image893748.png'
>>>>>>>>>       return url;
>>>>>>>>>   }
>>>>>>>>> ));
>>>>>>>>>
>>>>>>>>
>>>>>>>> Or, maybe a bit nicer, encapsulate it into a component and let
>>>>>>>>
>>>>>>> the
>>>
>>>> URI
>>>>>
>>>>>> come from a Model, as usual in Wicket:
>>>>>>>
>>>>>>>>
>>>>>>>> class ExternalImageUri
>>>>>>>> extends WebComponent
>>>>>>>> {
>>>>>>>>     public ExternalImageUri(String id, IModel<String> uri)
>>>>>>>>     {
>>>>>>>>             super(id, uri);
>>>>>>>>             add(new AttributeModifier("src", true, uri));
>>>>>>>>     }
>>>>>>>>
>>>>>>>>     @Override
>>>>>>>>     protected void onComponentTag(ComponentTag tag)
>>>>>>>>     {
>>>>>>>>             super.onComponentTag(tag);
>>>>>>>>             checkComponentTag(tag, "img");
>>>>>>>>     }
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> This in the Wiki at
>>>>>>>>
>>>>>>> http://cwiki.apache.org/WICKET/how-to-load-an-external-image.html.
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> -- Thomas
>>>>>>>>
>>>>>>>>
>>>>>>>>  2010/1/27 François Meillet<[email protected]>:
>>>>>>>>>
>>>>>>>>>> Hi Wicketers,
>>>>>>>>>>
>>>>>>>>>> I have a directory, /xxx/images with uploaded images, which is
>>>>>>>>>>
>>>>>>>>> not
>>>>
>>>>> under the application context root directory.
>>>>>>>
>>>>>>>> How can I serve them as static images ?
>>>>>>>>>>
>>>>>>>>>> I tried the StaticImage class I found in the forum (
>>>>>>>>>>
>>>>>>>>> http://old.nabble.com/Plain-IMG-src-urls-td21547371.html#a21547543
>>>>>>> )
>>>>>>>
>>>>>>>> but it doesn't work for me. It just work if the image files are
>>>>>>>>>>
>>>>>>>>> under
>>>>>
>>>>>> the context root directory.
>>>>>>>
>>>>>>>>
>>>>>>>>>> Thanks for your help.
>>>>>>>>>>
>>>>>>>>>> François
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>
>>>>>>  To unsubscribe, e-mail: [email protected]
>>>>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------------------
>>>>>
>>>>>>  To unsubscribe, e-mail: [email protected]
>>>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>>  -------------------------------------------------------------------
>>>
>>>>  Thomas Kappler                        [email protected]
>>>>>>>> Swiss Institute of Bioinformatics         Tel: +41 22 379 51 89
>>>>>>>> CMU, rue Michel Servet 1
>>>>>>>> 1211 Geneve 4
>>>>>>>> Switzerland                              http://www.uniprot.org
>>>>>>>>
>>>>>>>>  -------------------------------------------------------------------
>>>
>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>
>>>>>  To unsubscribe, e-mail: [email protected]
>>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>>
>>>>>>>>
>>>>>>> François Meillet
>>>>>>> [email protected]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>
>>>>  To unsubscribe, e-mail: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to