Questions & Answers

kernberger
I'm new here

Datei erzeugen per Vorlagenscript (java.lang.SecurityException)

Hallo,

ich habe folgendes Problem:

ich mรถchte per Vorlagenscript (Aufruf รผber CMS_RENDER) eine Datei in der Medienverwaltung speichern.

Folgender Code funktioniert in einem Menรผskript, in einem Vorlagenskript bekomme ich aber eine "java.lang.SecurityException: read only store"

    try {

        // create file to write the xml string

        String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());

        String xmlName = selectedMediaFolder.getUid() + today;

        mediaXml = selectedMediaFolder.get().createMedia(xmlName, xmlName, Media.FILE, false, true);

        // fill created media (write xml)

        mediaXml.setLock(true, true);

        byte[] xmlByteArray = xml.toString().getBytes("UTF-8");

        ByteArrayInputStream bais = new ByteArrayInputStream(xmlByteArray);

        mediaXml.getFile(lang).setFile(xmlByteArray.length, bais, ".xml");

        mediaXml.save();

    }

    catch (ElementDeletedException e) {

        e.printStackTrace();

    }

    catch (LockException e) {

        e.printStackTrace();

    }

    catch (IOException e) {

        e.printStackTrace();

    }

    finally {

        try {

            mediaXml.setLock(false, true);

        }

        catch (LockException e) {

            e.printStackTrace();

        }

        catch (ElementDeletedException e) {

            e.printStackTrace();

        }

    }

Hat irgend jemand eine Idee woran das liegen kรถnnte?

Danke

0 Kudos
4 Replies
gockel
Crownpeak employee

"java.lang.SecurityException: read only store"

Vorlagenskripte werden innerhalb der Generierung ausgefรผhrt und wie die Fehlermeldung schon sagt, wird bei der Generierung ein "read-only-store" verwendet, der auf den Startzeitpunkt der Generierung eingefroren ist. Es kรถnnen also grundsรคtzlich keine verรคndernden Operationen an FS-Entitรคten wรคhrend der Generierung vorgenommen werden.

Kรถnnen Sie den dahinterstehenden Anwendungsfall vielleicht beschreiben.

0 Kudos

Danke fรผr die schnelle Antwort!

Wir mรถchten aus den Datei-Informationen (Bilder) in einem Medienordner eine XML-Datei erzeugen.

- Unter anderem soll die URL zu den Bildern im XML gespeichert werden.

- Die XML soll im gewรคhlten Ordner gespeichert werden.

- Der Medien-Ordner soll vom Redakteur ausgewรคhlt werden.

Erster Ansatz war ein Menรผskript zu schreiben. Das Problem war hier, dass ich keinen Weg gefunden habe รผber ein Menรผskript (bzw. den entsprechenden Context) an die Bild-URL ranzukommen.

Da man รผber den GenerationContext an den URLCreator rankommt etc. war der nรคchste Ansatz ein Vorlagenscript zu erstellen, welches  dann per CMS_RENDER aufgerufen wird, um eben bei der Generierung die XML-Datei zu erzeugen.

Gibt es denn generell eine Mรถglichkeit per Menรผ- oder Kontext-Skript an die URLs ranzukommen?

0 Kudos

Hallo,

wir haben etwas รคhliches gelรถst.

Nach einer Generierung mit anschlieรŸender Verรถffentlichung wird eine Medium angelegt (mit Textinhalt). Das funktioniert bestens.

Allerdings wird das bei uns รผber einen Auftrags-Script ausgefรผhrt. Ich vermute, dass Du da an alles notwendige herankommst.

Event. wรคre das eine Alternative fรผr Dich.

Hinweis: Das Script muss unter einem User ausgefรผhrt werden, der in allen Medienordnern Schreibrechte hat.

Hallo,

danke, das wรคre eine Mรถglichkeit, wir haben es nun so gelรถst, dass wir weiterhin ein Vorlagenskript verwenden, den Dateinhalt aber im Speicher halten, und somit ein Zugriff auf den Medien-Store nicht mehr notwendig ist.

0 Kudos

Type a product name