Questions & Answers

SOLVED
MarsDD
Occasional Observer

UrlCreator im Workflow

Jump to solution

Hallo zusammen,

ich stoรŸe gerade an ein Problem, bei dem ich nicht mehr weiter komme.

Folgende Situation:

Ich fรผhre in einem Workflow eine Executable aus, welche wiederum einen Generierungsauftrag startet - soweit so gut. Nachdem dieser durch ist, benรถtige ich den URL Creator um URLs von gewisse Elemente (z.B. von Bilder) der deployten Seite (anhand der PageRef) zu erhalten.

Den UrlCreator hole ich mir wie folgt:

UrlCreatorSpecification urlSpecification = generateTask.getUrlCreatorSpecification();

urlCreator = urlSpecification.createUrlCreator();

Sobald ich jedoch meinen Workflow laufen lasse erhalte ich eine NPE mit folgendem StackTrace:

at de.espirit.firstspirit.generate.PluggableUrlCreator.getAbsolutePath(PluggableUrlCreator.java:280)

          at de.espirit.firstspirit.generate.PluggableUrlCreator.getFilename(PluggableUrlCreator.java:259)

          at de.materna.firstspirit.XXX.analysePageRef(XXX.java:231)

          at de.materna.firstspirit.XXX.<init>(XXX.java:73)

          at de.materna.firstspirit.XXX.XXX(XXX.java:39)

          at de.materna.firstspirit.XXX.execute(XXX.java:19)

          at de.espirit.firstspirit.client.gui.applications.ApplicationTabRegistry$IdentifiableExecutable.execute(ApplicationTabRegistry.java:104)

          at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

          at java.lang.reflect.Method.invoke(Method.java:497)

          at bsh.Reflect.invokeMethod(Reflect.java:166)

          at bsh.Reflect.invokeObjectMethod(Reflect.java:99)

          at bsh.Name.invokeMethod(Name.java:858)

          at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)

          at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)

          at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)

          at bsh.BSHBlock.evalBlock(BSHBlock.java:130)

          at bsh.BSHBlock.eval(BSHBlock.java:80)

          at bsh.BshMethod.invokeImpl(BshMethod.java:371)

          at bsh.BshMethod.invoke(BshMethod.java:267)

          at bsh.BshMethod.invoke(BshMethod.java:170)

          at bsh.PreparsedScript.invoke(PreparsedScript.java:66)

          at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:100)

          at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:84)

          at de.espirit.firstspirit.client.gui.applications.ApplicationTabRegistry$IdentifiableExecutable.execute(ApplicationTabRegistry.java:104)

          at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1147)

          at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1084)

          at de.espirit.firstspirit.workflow.WorkflowAgentImpl$TransitionRunnable.run(WorkflowAgentImpl.java:688)

          at de.espirit.firstspirit.client.gui.util.GuiUtil$RunnableWrapper.run(GuiUtil.java:1959)

          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

          at java.lang.Thread.run(Thread.java:745)

Ich hoffe ich konnte mein Problem verstรคndlich klar darstellen.

FS-Version: 5.2.212

Viele GrรผรŸe aus Dresden

Marcel

0 Kudos
1 Solution

Accepted Solutions
MarsDD
Occasional Observer

Problem gefunden - lag an einem internen Konfikt.

View solution in original post

0 Kudos
6 Replies
switt
I'm new here

Hallo Marcel,

ich vermute es liegt daran, dass der URLCreator kein TemplateSet und keine Sprache hat (es sei denn es fehlt ein bischen Code in deinem Beispiel).

Den URLCreator wรผrde ich aus dem GenerateTask รผber den ScheduleContext holen:

urlCreator = context.getProperty("#urlCreator");

GruรŸ,

Sebastian

0 Kudos
MarsDD
Occasional Observer

Hi Sebastian,

hierbei komm ich ja genau nicht weiter. Da die Executable in einem Workflow getriggert wird, habe ich ja "nur" den WorkflowScriptContext.

Anhand des GenerateTask habe ich keine Mรถglichkeit bis jetzt gefunden, den UrlCreator daraus zu extrahieren.

Viele GrรผรŸe

Marcel

0 Kudos

Hallo Marcel,

Ich hatte das mit dem Workflow nicht gelesen, sorry. Mein Test im Workflow verlief aber positiv mit folgendem Code.

// Assume your GenerateTask comes from a ScheduleEntry

generateTask = context.getUserService().getConnection().getAdminService().getScheduleStorage().getScheduleEntries(context.getProject()).get(0).getTasks().get(0);

// Get URLCreator

urlSpecification = generateTask.getUrlCreatorSpecification();

urlCreator = urlSpecification.createUrlCreator();

// Obtain necessary values

ss=context.getUserService().getStore(Type.SITESTORE, true); // true should be necessary at this point

page=ss.getChildren(PageRef.class, true).getFirst(); // Any Ref

p=context.getProject();

l=p.getMasterLanguage();

ts=p.getTemplateSets().get(0);// 0 is HTML in my case

// Get URL       

url = urlCreator.getUrl(page,l, ts, PageParams.SINGLE_PAGE_PARAMS,de.espirit.firstspirit.generate.UrlCreator.ABSOLUTE_URL);

context.logError(url);

0 Kudos
MarsDD
Occasional Observer

Hallo Sebastian,

fรผhrst du dies als FS-Skript aus? Wenn ja,dann funktioniert dies. Lagere dies, wie oben beschrieben, mal in ein Modul aus - dann sollte die NPE kommen.

VG Marcel

0 Kudos

Hallo Marcel,

ich habs in der Tat als Beanshell Script getestet, aber es funktioniert auch im Modul (grade nochmal probiert) Smiley Wink.

Evtl. ist deine Modul config falsch. Hier mal die aus meinem Test:

<?xml version="1.0" encoding="UTF-8"?>

<module>

    <name>XYZ</name>

    <displayname>XYZ</displayname>

    <version>0.9.1</version>

    <description>A Test</description>

    <vendor>Fancy Name</vendor>

    <scope>public</scope>

    <components>

       <library>

            <name>Utility Core</name>

            <description>Module Core Classes</description>

            <resources>

                <resource>lib/test-jar-with-dependencies.jar</resource>

            </resources>

        </library>

    </components>

</module>

0 Kudos
MarsDD
Occasional Observer

Problem gefunden - lag an einem internen Konfikt.

0 Kudos

Type a product name