ESalimov
I'm new here

FS_LIST und Oracle Datenbank

Jump to solution

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.

0 Kudos
1 Solution

Accepted Solutions

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

View solution in original post

0 Kudos
9 Replies
ESalimov
I'm new here

..........

(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)

0 Kudos

Hallo zusammen,

kann jemand mir helfen ? hat jemand eine Idee, warum ich so eine Fehlermeldung bekomme?

Viele Grüße,

Emil

0 Kudos

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.

0 Kudos
Anonymous
Not applicable

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

0 Kudos

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.JPG

2)

1.JPG

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:

3.JPG

Danke im Voraus.

Viele Grüße,

Emil



0 Kudos
ESalimov
I'm new here

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

0 Kudos

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

0 Kudos

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.

Peter
0 Kudos

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

0 Kudos