Search the FirstSpirit Knowledge Base
Hallo zusammen,
Beim Hinzufügen kriege ich eine Fehlermeldung. Da ist die Inhalt von Formular.
<CMS_INPUT_TEXT name="cs_name" hFill="yes" singleLine="no">
<LANGINFOS>
<LANGINFO lang="*" label="Name"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_TEXT name="cs_sku" hFill="yes" singleLine="no">
<LANGINFOS>
<LANGINFO lang="*" label="SKU"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<FS_LIST name="cs_skus" hFill="yes">
<DATASOURCE type="database">
<ACTIONS>
<ACTION name="ADD"/>
<ACTION name="REMOVE"/>
</ACTIONS>
<COLUMNS>
<COLUMN show="no">#identifier</COLUMN>
</COLUMNS>
<LAYOUT>
<ADD component="toolbar" constraint="top"/>
<ADD component="overview" constraint="center"/>
<ADD component="stackedview" constraint="hide"/>
</LAYOUT>
<TABLE>products.product</TABLE>
</DATASOURCE>
<LANGINFOS>
<LANGINFO lang="*" label="SKU's"/>
</LANGINFOS>
</FS_LIST>
Die Tabelle "Product" ist aus Oracle Datenbank und enthält mehrere Attribute. Aber ich brauche nur Sku(String) und Name(String), die ich später zum Auswahl da habe und beim Hinzufügen soll ohne Problem durchgeführt werden.
Da ist die Fehlermeldung:
...
(de.espirit.firstspirit.client.AbstractGuiHost): ExceptionHandler.uncaughtException() - java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
FSVersion=5.0.318.57504#3526;JDK=1.7.0_25 64bit Oracle Corporation;OS=Windows 7 6.1 amd64;Date=26.09.2013 16:59:15
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
at de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData.updateFsId(EntityFormData.java:60)
at de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData.<init>(EntityFormData.java:46)
at de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData.<init>(EntityFormData.java:38)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentDataFactory.createFormData(ContentDataFactory.java:250)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentDataFactory.create(ContentDataFactory.java:234)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentDataFactory.create(ContentDataFactory.java:175)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentActions$Add.addEntityIfAllowed(ContentActions.java:437)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentActions$Add.actionPerformed(ContentActions.java:426)
at de.espirit.firstspirit.access.store.templatestore.gom.fslist.DefaultActionHandler.actionPerformed(DefaultActionHandler.java:39)
Ich würde mich freuen, wenn Sie mir helfen könnten.
Viele Grüße,
Emil.
Hallo Emil,
ich bin mir ziemlich sicher, dass FirstSpirit als Primary Key eine Number erwartet. Ohne das in deiner Datenbank zu ändern, wirst du hier wohl Probleme haben.
Viele Grüße
Thorsten
..........
(de.espirit.firstspirit.client.AbstractGuiHost): ExceptionHandler.uncaughtException() - java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
FSVersion=5.0.318.57504#3526;JDK=1.7.0_25 64bit Oracle Corporation;OS=Windows 7 6.1 amd64;Date=26.09.2013 17:18:10
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
at de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData.updateFsId(EntityFormData.java:60)
at de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData.<init>(EntityFormData.java:46)
at de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData.<init>(EntityFormData.java:38)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentDataFactory.createFormData(ContentDataFactory.java:250)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentDataFactory.create(ContentDataFactory.java:234)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentDataFactory.create(ContentDataFactory.java:175)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentActions$Add.addEntityIfAllowed(ContentActions.java:437)
at de.espirit.firstspirit.access.store.contentstore.gom.list.ContentActions$Add.actionPerformed(ContentActions.java:426)
at de.espirit.firstspirit.access.store.templatestore.gom.fslist.DefaultActionHandler.actionPerformed(DefaultActionHandler.java:39)
Hallo zusammen,
kann jemand mir helfen ? hat jemand eine Idee, warum ich so eine Fehlermeldung bekomme?
Viele Grüße,
Emil
Hallo,
Ich habe es in dem Demo-Projekt getestet, da läuft es ganz normal. Ich vermute jetzt, dass ich die Fehlermeldung wegen der Anbindung der Oracle-Datenbank bekomme. Wenn ich die Datenquelle anlege, dann bekomme ich nur ein einziges Attribut, nämlich den Primary Key mit Namen UUID (Datentyp String). Kann es sein, dass bei Anbindung einer externen Datenbank der Primary Key zwingend vom Datentyp Integer sein muss?
Veiel Grüße,
Emil.
Hi Emil,
deine Fehlermeldung klingt nach unpassenden/fehlerhaften Tabellenspaltentypen: "java.lang.String cannot be cast to java.lang.Number".
Wie wird die Datenbank angebunden? Werden die Tabellen von FirstSpirit verwaltet oder handelt es sich um eine nicht-schreibende Anbindung mit bereits existierenden Tabellen? Wie sieht das Mapping aus?
Ohne weitere Informationen kann man leider wenig helfen, sondern nur raten wo der Fehler liegt.
Viele Grüße,
Nils
Hallo Nils,
ich habe ein Schema aus Datenbank erzeugt und es handelt sich um eine nicht-schreibende Anbindung mit bereits existierenden Tabellen.( Soweit ich verstanden habe, darf eine externe DB von Firstspirit nicht verwaltet werden). Die entsprechenden Screenshots des Mappings habe ich unten angehängt.
1)
2)
Die Idee war, dass der Redakteur den Name des Produkts über die SKU(Datentyp String) zugreifen kann. Also, der Redakteur gibt die SKU in CMS_INPUT_TEXT und enthält den entsprechenden Name in COMBOBOX. Aber es muss die Möglichkeit bestehen, dass der Redakteur den gesuchten Name aus COMBOBOX auswählen kann.
P.S Kann man die Idee in WebEdit über "Inhalt bearbeiten" Dialog realisieren ohne BeanShell Skript für den Button "Suche" zu verwenden?
So was in WebEdit:
Danke im Voraus.
Viele Grüße,
Emil
Hallo zusammen,
Das Problem liegt auf jeden Fall in Primary Key, weil Primary Key da einen Datentype Stirng hat.
Wie kann man das Problem behoben oder ist es nicht möglich?
Viele Grüße,
Emil
Hallo Emil,
ich bin mir ziemlich sicher, dass FirstSpirit als Primary Key eine Number erwartet. Ohne das in deiner Datenbank zu ändern, wirst du hier wohl Probleme haben.
Viele Grüße
Thorsten
Korrekt, für einige Nutzungsarten wird in FirstSpirit ein numerischer Primär-Schlüssel in der externen Tabelle vorrausgesetzt. Dies betrifft auch die Verwendung in FS_LIST bzw. FS_DATASET.
Hallo Emil,
benötigst Du noch weitere Hilfe oder haben Dir die gegebenen Antworten bereits geholfen?
In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere
Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung
gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Michaela