- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
no target selected - Undefined field 'getUrl'!
Hallo zusammen,
seit einer Woche arbeite ich nun frisch in einem unserer FirstSpirit Projekte und kรผmmere mich gerade darum die Generierungsfehler zu analysieren und zu beheben um mich in das Projekt einzuarbeiten.
Einer der Fehler bereitet mir jedoch Kopfzerbrechen und da alle meine Kollegen ausgefallen sind, kann ich mich aktuell mit Niemandem direkt austauschen.
Ich bekomme den allseits bekannten Fehler:
ERROR 13.02.2019 10:37:17.962{g-node=619051} (de.espirit.firstspirit.generate.SiteProduction): no target selected
An dieser Stelle sollte es vermutlich eine Referenz geben, die ins Leere fรผhrt. Durch das Templatedebugging $CMS_SET(#global.debugMode,true)$ habe ich die exakte Position bestimmen kรถnnen.
$CMS_SET(set_ft_refUrl, ref(paramRef, abs:2, lang:if( !paramLang.isEmpty, paramLang, #global.language.abbreviation)).getUrl)$
รผber einige Debug-Ausgaben weiร ich aber auch, dass die Methoden valide Ergebnisse zurรผckliefern:
$CMS_SET(anha, "ANHA Logolink: " +
map_ps_areaprojectsettings.logoLink.get() +
"lang: " +
if(!paramLang.isEmpty,paramLang,#global.language.abbreviation) +
"just ref: " +
ref(map_ps_areaprojectsettings.logoLink.get(),abs:2,lang:if(!paramLang.isEmpty,paramLang,#global.language.abbreviation)) +
"ref url: " +
ref(map_ps_areaprojectsettings.logoLink.get(),abs:2,lang:if(!paramLang.isEmpty,paramLang,#global.language.abbreviation)).getUrl)$
Ergebnis:
ANHA Logolink: <PAGEREF editor="111109" htmlname="Home" id="633019" pageref="632957" releaseRevision="505599" releasedby="111109" revision="505599" uniquedescription="005_home_1">
<LANG displayname="Home" language="DE"/>
<PAGE_LANG_SPEC language="DE" showinpagegrp="1" showinsitemap="1"/>
</PAGEREF>
lang: DE
just ref: de.espirit.firstspirit.generate.ContentProducerReference@b5fe68bref
url: /r/de/home/home.html
Eine weitere Spur zu dem Problem ist ein Warning, welches mir direkt nach dem Error ausgegeben wird:
WARN 13.02.2019 11:29:52.293{g-node=619051} (de.espirit.firstspirit.generate.SiteProduction): Undefined field 'getUrl'!
An dieser Stelle verstehe ich nicht, weshalb "getUrl" als field erkannt wird. Die Methode gibt schlieรlich wie sie es soll die URL der Referenz zurรผck.
Wenn ich mir das ApiDoc von ref(map_ps_areaprojectsettings.logoLink.get(),abs:2,lang:if(!paramLang.isEmpty,paramLang,#global.language.abbreviation)) ausgeben lasse, ist dort "getUrl()" ebenfalls aufgelistet.
Hat Jemand eine Idee was hier passiert, oder wie ich den Fehler beheben kann? Ich sehe langsam den Wald vor lauter Bรคumen nicht mehr... :smileyconfused:
Vielen Dank und viele Grรผรe,
Annika
- Labels:
-
Developers
- Tags:
- generation
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Annika,
versuch erstmal, entweder .getUrl() - also mit Klammern - oder nur .url (ohne Klammern) zu benutzen.
Letzteres ist die sog. โBeanshell-Syntaxโ wo parameterlose Getter wie รถffentliche Attribute angesprochen werden kรถnnen - dann aber ohne das get...
Die โMischformโ ist eher unรผblich.
Das ist aber wahrscheinlich nicht der Grund fรผr den Fehler. Wo kommt das paramRef denn her und vor allem: was ist es fรผr ein Typ? Ich vermute, dass da nicht โdas Richtigeโ in der Variablen steckt. Dadurch funktioniert dann das ref(...) nicht, was zu einem โfalschenโ Objekt als Ergebnis fรผhrt, das dann eben keine Methode getUrl() hat.
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michael,
paramRef ist ein Wert der รผber die $CMS_Render()$-Parameter an das Template รผbergeben wird.
paramRef: class de.espirit.firstspirit.store.access.sitestore.PageRefImpl
Durch das Apidoc weiร ich, dass die Klasse die Methode getUrl() unterstรผtzt.
Mir fรคllt aber gerade auf, wรคhrend ich die Methoden hier herein kopiere, dass diese vermutlich nicht richtig verwendet werden. Ein einfaches Anhรคngen der Methode wird an dieser Stelle vermutlich nicht akzeptiert und ich muss die erwarteten Parameter un den Klammern einfรผgen?
java.lang.String getUrl(de.espirit.firstspirit.access.UrlCreatorProvider, de.espirit.firstspirit.access.Language, de.espirit.firstspirit.access.project.TemplateSet, de.espirit.firstspirit.access.store.PageParams, int)
java.lang.String getUrl(de.espirit.firstspirit.access.UrlCreator, de.espirit.firstspirit.access.Language, de.espirit.firstspirit.access.project.TemplateSet, de.espirit.firstspirit.access.store.PageParams, int)
Bin ich damit auf dem richtigen Weg, oder gibt es noch eine leichtere Mรถglichkeit? Das kommt mir recht komplex vor alles nocheinmal umzubauen, dafรผr dass sich das Template schon richtig verhรคlt und ich nur einen Generierungsfehler beseitigen mรถchte.
Vielen Dank und viele Grรผรe,
Annika
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Annika,
das sind hier zwei unterschiedliche Paar Schuhe. Ja, man kann sich aus einer PageRef selbst die URL geben lassen - das wรคre quasi der "reine API-Weg". Das ref(...) nimmt einem aber genau das ab, insbesondere nutzt es die aktuellen Kontext-Informationen (Sprache, TemplateSet usw.) wenn man sie nicht "รผberschreibt".
Nur um sicherzugehen dass ich Dich richtig verstanden habe: Das Generat (und nicht nur das der Vorschau sondern in der "echten" Generierung) ist am Ende vรถllig in Ordnung und Du hast nur diese lรคstigen Generierungsfehler? Das hatte ich vorher nรคmlich anders interpretiert.
Falls das so ist: Kommt die Fehlermeldung vielleicht aus einem anderen Sprach- oder Vorlagenkanal?
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michael,
leider darf ich an diesem Thema nicht weiter arbeiten.
Der Generierungsfehler tritt in einem Template auf, welches nicht von uns ist. Das wusste ich nicht als ich damit angefangen hatte.
Sollte ich jedoch trotzdem irgendwann eine Lรถsung aufschnappen, werde ich das hier noch kommentieren.
Vielen Dank fรผr deinen Hilfe-Versuch. : )

