Search the FirstSpirit Knowledge Base
Hallo!
Ich sehe gerade den Wald vor lauter Bäumen nicht. Ich versuche mittels eines kleinen Beanshell-Scriptes die History einer Seite auszulesen um den letzten freigebenden Redakteur auszulesen.
Hier mal der Anfang des Scriptes:
//!Beanshell
import de.espirit.firstspirit.access.store.IDProvider;
import de.espirit.firstspirit.storage.Revision;
import de.espirit.firstspirit.storage.RevisionFilter;
import de.espirit.firstspirit.storage.HistoryProvider;
import java.text.SimpleDateFormat;
import de.espirit.or.web.SessionManager;
import de.espirit.or.schema.Entity;
import de.espirit.or.schema.KeyValue;
import java.util.*;
import de.espirit.firstspirit.common.gui.CMSDialog;
import de.espirit.firstspirit.access.store.mediastore.Media;
import de.espirit.firstspirit.access.UserService;
import de.espirit.firstspirit.access.store.*;
import de.espirit.firstspirit.access.store.contentstore.Content2;
import de.espirit.firstspirit.access.store.contentstore.ContentStoreRoot;
import de.espirit.firstspirit.access.store.templatestore.Schema;
import de.espirit.or.Session;
import de.espirit.or.query.Equal;
import de.espirit.or.query.Or;
import de.espirit.or.query.Select;
Calendar firstRelease = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
UserService us = p.getProject().getUserService();
ContentStoreRoot cs = us.getStore(Store.Type.CONTENTSTORE, true);
Content2 contentSource = cs.getContent2ByName("autor");
Schema schemaTable = contentSource.getSchema();
Session orSession = schemaTable.getSession(true);
Select select = orSession.createSelect("Autor");
In der vorletzten Zeile passiert dann der Fehler, wenn ich mir die Vorschau einer Seite angucke. Aber auch beim Deployment taucht der Fehler auf.
Called from method: __execute
Target exception: java.lang.ClassCastException: Cannot cast de.espirit.or.impl.SessionImpl to de.espirit.or.Session
Wieso das und wie kann ich das umgehen? In FS4.2 ging das noch und in FS5 scheinbar nicht mehr? Wo ist mein Fehler?
Danke im Voraus!
Kannst du ein paar mehr Details zu deiner Umgebung geben?
Es sieht danach aus, als würde der Klassenpfad das Paket "de.espirit.or" doppelt enthalten. Ist das im Web-Umfeld? Zumindest der Import von "de.espirit.or.web.SessionManager" deutet darauf hin..
Was für Infos brauchst Du denn genau? Wir setzen FS 5.1.209.63675 ein.
Ich finde leider nix doppelt oder so. Aber sicherlich könnte das wirklich sein. Nur wo noch gucken?
Spannende Info: wenn ich das Script so anpasse:
p = context.getStoreElement();
us = context.getUserService();
//UserService us = p.getProject().getUserService();
Dann läuft das Script über das Kontextmenü an einer Strukturseite aufgerufen, problemlos durch!
Rufe ich es unverändert wie im ersten Posting geschrieben in einem Template auf
$CMS_RENDER(script:"get_last_editor",p:#global.node)$
dann scheitert es.
Hat niemand eine Idee? Bitte um Hilfe!!!!!!!
Hallo Marcus,
dass ein Script aus dem Kontextmenü problemlos funktioniert und in der Seite selbst nicht kann dem Context-Objekt geschuldet sein.
Der Kontextmenü-Context (http://www.e-spirit.com/odfs51/dev/de/espirit/firstspirit/client/plugin/contextmenu/ContextMenuConte...) ist nicht der gleiche Context wie der bei der Generierung (http://www.e-spirit.com/odfs51/access/de/espirit/firstspirit/access/GenerationScriptContext.htmlhttp://www.e-spirit.com/odfs51/access/de/espirit/firstspirit/access/GenerationContext.html).
Du kannst mit context.getClass().getName() den Namen des aktuellen Context-Objektes erfahren.
Gruß Marian
Hallo Marcus,
ist dieses Posting noch aktuell? Benötigst du noch weitere Hilfe oder haben dir die Antworten bereits geholfen? In diesem Fall wäre es super, wenn du die "richtige" Antwort entsprechend markierst.
Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es toll, wenn du diese hier bereitstellst.
Viele Grüße
Michaela
Nein, ist leider noch aktuell. Ich hatte das Problem erstmal auf Eis gelegt. Bin aber gerade heute wieder damit angefangen das anzusehen.
Also bitte noch um weitere Hilfe...
Hast du die Möglichkeit, das auf einer aktuelleren FirstSpirit-Version zu testen?
Haben nun 5.1.410.67084 im Einsatz. Auch dort das gleiche Problem.