Search the FirstSpirit Knowledge Base
Hallo zusammen,
auch wenn das TWT SEO URL Creator Modul nicht zum FS Standardumfang gehört versuche ich hier mein Glück.
Ich möchte in einem BeanShell-Skript mit Hilfe des SEO URL Creators URLs generieren und versuche dies wie folgt:
urlCreatorWithoutSEO = context.getConnection().getClassLoader().loadClass(((GenerateTask) scheduleTask).getUrlCreatorClassName()).newInstance();
urlCreatorWithSEO = context.getConnection().getClassLoader().loadClass(((GenerateTask) scheduleTask).getUrlCreatorClassName()).newInstance();
...
urlCreatorWithoutSEO.getUrl(pageRef, masterLanguage, getTemplateSetByUid("html"), pageRef.getMultiPageParams(masterLanguage, getTemplateSetByUid("html")).getPageParams(0), UrlCreator.Mode.ABSOLUTE_URL.ordinal());
urlCreatorWithSEO.getUrl(pageRef, masterLanguage, getTemplateSetByUid("html"), pageRef.getMultiPageParams(masterLanguage, getTemplateSetByUid("html")).getPageParams(0), UrlCreator.Mode.ABSOLUTE_URL.ordinal());
Diese Art der Instanziierung und URL Erzeugung funktioniert mit dem Standard URL creator problemlos. Beim SEO URL Creator funktioniert noch die instanziierung, bei der URL Erzeugung tritt jedoch intern im SEO URL Creator eine NullPointerException auf.
...
Caused by: java.lang.NullPointerException
at de.twt.ecms.firstspirit.modules.seourlcreator.SeoUrlCreator.getUrl(SeoUrlCreator.java:371)
at de.espirit.firstspirit.generate.AbstractUrlCreator.getUrl(AbstractUrlCreator.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Hat jemand von euch einen Tipp, wie ich den SEO URL Creator korrekt instanziieren, bzw. ihm die benötigten Daten (und welche diese sind) mitgeben kann, so dass ich auch mit Hilfe des SEO URL Creators innerhalb eines Skriptes URLS erzeugen kann?
Beste Grüße
Sandro
Hallo Rouven,
dein Post hat den entscheidenen Denkanstoß gegeben und mit der Lösung aus folgendem Post, habe ich dann auch meine Implementierung finalisieren können. (Re: UrlCreator / GenerationContext im Auftrags-Skript (ScheduleContext))
Den standard URL creator kann ich mir auch ohne GenerationContext holen und verwenden. Den SEO URL Creator hole ich mir, indem ich eine partielle Generierung einer einzelnen Seite anstoße und ihn dann wie im verlinkten Thread beschrieben aus dem Context ziehe.
Nochmals vielen Dank!
Hallo Sandro,
Ich gehe davon aus, dass es um ein Firstspirit 4 Projekt geht!?
In FirstSpirit 5 Projekten sollte die UrlFactory genutzt werden, deshalb gibt es von TWT extra eine Version des SEO URL Creators für FirstSpirit 5.
Die init(GenerationContext gc) Methode des UrlCreators muss zuerst ausgeführt werden um anschliessend die URL generieren zu können.
Und ich denke da wird dann das Problem liegen, dass du keinen GenerationContext zur Verfügung hast.
Die einfachste Lösung wäre über getStoredUrl die gespeicherten URLs auszulesen oder aber die instanziierung nicht selbst vorzunehmen, sondern sich den UrlCreator, der in der Generierung instanziiert wird, zu holen. (https://community.e-spirit.com/message/17255#17255)
Viele Grüße
Rouven
Hallo Rouven,
dein Post hat den entscheidenen Denkanstoß gegeben und mit der Lösung aus folgendem Post, habe ich dann auch meine Implementierung finalisieren können. (Re: UrlCreator / GenerationContext im Auftrags-Skript (ScheduleContext))
Den standard URL creator kann ich mir auch ohne GenerationContext holen und verwenden. Den SEO URL Creator hole ich mir, indem ich eine partielle Generierung einer einzelnen Seite anstoße und ihn dann wie im verlinkten Thread beschrieben aus dem Context ziehe.
Nochmals vielen Dank!