- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
MethodNotSupportedException beim Aufruf "createEntity" auf einer Session
Hallo,
wir fragen wรคhrend der Generierung von Seiten immer wieder einen Webservice ab. Es kann nun sein, das der Webservice zwischendrin nicht erreichbar ist. Ich habe deswegen ein Skript geschrieben, welches bei einem Erfolgreichen Aufruf die Antwort cached und wenn der Service mal nicht erreichbar ist, sich die Daten aus dem Cache holt. Als Cache verwende ich eine einfache Tabelle in den Datenquellen. Gekรผrzt sieht das Skript so aus:
userService = context.getUserService();
contentStore = userService.getStore(Store.Type.CONTENTSTORE, true);
cache = contentStore.getContent2ByName(name);
equal = new Equal("key", key);
or = new Or();
or.add(equal);
session = cache.getSession();
select = session.createSelect(name);
select.setConstraint(or);
entityList = session.executeQuery(select);
entity;
if(entityList.size()==0) {
entity = session.createEntity(name);
} else {
entity = entityList.get(0);
}
Das Skript ausgefรผhrt als Kontextmenue funktioniert auch soweit. Wenn aber das Skript bei der Generierung lรคuft wird folgende Exception geworfen:
java.lang.UnsupportedOperationException
Wie kann ich zur Generierung einen Datensatz erzeugen?
Vielen Dank schon einmal im voraus
Viele Grรผรe
Elmar
- Labels:
-
Developers
-
Knowledgebase
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Elmar,
Ich fรผrchte, dass dieses Konzept nicht aufgehen wird, da man bei einer Generierung in einer definierten Revision ist [die sich nicht รคndern lรคsst, siehe https://community.e-spirit.com/message/2236#2236]
Selbst wenn Du die entsprechenden Daten in die Datenbank schreibst, werden sie Dir bei der Generierung nicht zur Verfรผgung stehen, da die Daten ja mit einer neueren Revision geschrieben wurden [und es sie somit fรผr die aktuelle Generierung nicht gibt]
Mรถglich wรคre es hier, entweder den Webservice einmal vor der Generierung per Skript abzufragen, die Daten zu speichern und dann den Zeitpunkt der Generierung auf "jetzt" setzen:
context.setStartTime(new Date());
Bleibt natรผrlich das Problem, dass der Webservice nicht permanent ereichbar ist...
Viele Grรผรe aus Dortmund,
Holger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
vielen Dank fรผr die schneller Antwort. Gibt es einen Anderen Ansatz einen Cache zu implementieren, die Datenquellen wรผrden sich dafรผr ja anbieten
Viele Grรผรe aus Mรผnchen
Elmar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Statt direkt den WebService anzusprechen kรถnnte man einen eigenen Service (de.espirit.firstspirit.module.Service) dazwischenschalten - quasi als Proxy.

