voiko classpathia päivittää lennossa?

Container on WebSphere 5.1

Sovellus saa claspathiin serverin hakemiston, josta sovelluksen pitäis hakea kuvia. Toimii ihan jees silleen, että classloafer löytää ne kamat sieltä.

Nyt jos sovelluksen ollessa käynnissä lisään hakemistoon alihakemiston, niin eipä löydä sovellus sen sisältä kamoja.

Saako tota classpathia refreshattua jotenkin runtime?

Lukeeko JVM classpathissa annettujen hakemistojen alihakemistotkin ja käyttää sitten niitä (tää selittäis miksi uusi hakemiston ei löydy)

Onko ainoo ratkaisu korvata kuvien haku classloaderilla suoralla haulla tiedostojärjestelmään vaikka fileinputstreamillä?
2151
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

Minkälaisella hakupolulla haet kuvia uudesta hakemistosta? Classloaderilla haettavat resurssit pitää ilmoittaa "binary name"-muodossa (kts. http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html#name)

Eli jos olet määrittänyt luokkapoluksi jonkin hakemiston ja luot sen alle uuden hakemiston "alihakemisto", ja sen alle tiedoston "kuva.jpg", Classloaderilla tuon tiedoston saa haettua nimellä "/alihakemisto.kuva.jpg" (tai jotain sinnepäin, en jaksa nyt kokeilla miten tuo tarkalleen ottaen menisi).

Siihen, osaako jvm löytää tuon alihakemiston, jos se luodaan jvm:n käynnistyksen jälkeen, en osaa sanoa. Jos ei, niin toteuta oma classloaderi, joka osaa. Classloaderin kirjoittaminen on hyvin helppoa..

Äänestä
  • classpathissa on polku /opt/jotain/jotain/pictures

    classloaderille annan /alihakemisto/kuva.jpg

    ja se löytää kuvan, jos hakemisto oli olemassa kun JVM käynnistettiin.

    Taidan tehdä vain luokan, joka hakee kuvahakemiston jostain sovellus.properties-tiedostosta ja luokan metodi ottaa alihakemiston ja kuvan nimen. Sitten vaan tiedosto auki vaikka

    OutputStream out = resp.getOutputStream();
    RandomAccessFile raf = new RandomAccessFile( filename, "r" );

    byte [] loader = new byte [ (int) raf.length() ];
    while ( (raf.read( loader )) > 0 ) {
    out.write( loader );

    Äänestä

Kommentoi aloitusta


Piru_ kirjoitti:

Container on WebSphere 5.1

Sovellus saa claspathiin serverin hakemiston, josta sovelluksen pitäis hakea kuvia. Toimii ihan jees silleen, että classloafer löytää ne kamat sieltä.

Nyt jos sovelluksen ollessa käynnissä lisään hakemistoon alihakemiston, niin eipä löydä sovellus sen sisältä kamoja.

Saako tota classpathia refreshattua jotenkin runtime?

Lukeeko JVM classpathissa annettujen hakemistojen alihakemistotkin ja käyttää sitten niitä (tää selittäis miksi uusi hakemiston ei löydy)

Onko ainoo ratkaisu korvata kuvien haku classloaderilla suoralla haulla tiedostojärjestelmään vaikka fileinputstreamillä?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu