Questions & Answers

SOLVED
Jan_Wehe
I'm new here

Fehler beim Speichern einer Bild Referenz

Jump to solution

Hallo zusammen,

ich habe eine Newstabelle erstellt, zu einer News soll auch ein Bild gespeichert werden kรถnnen.

Dazu habe ich folgende Formular Komponente genutzt:

<FS_REFERENCE name="cs_media" allowEmpty="yes" imagePreview="yes" upload="yes" useLanguages="no">

    <FILTER>

      <ALLOW type="picture"/>

      <HIDE type="folders"/>

    </FILTER>

    <LANGINFOS>

      <LANGINFO lang="*" label="News Visual" description="Please select a media file"/>

    </LANGINFOS>

    <PROJECTS>

      <LOCAL name=".">

        <SOURCES>

          <FOLDER name="pic" store="mediastore"/>

        </SOURCES>

      </LOCAL>

    </PROJECTS>

</FS_REFERENCE>

Wenn ich in der Datenquelle einen neuen Datensatz anlegen mรถchte, dann bekomme ich immer eine Fehlermeldung. Egal, ob ich ein Bild ausgewรคhlt habe oder das Feld frei lasse.

Caused by: java.sql.SQLException: Incorrect string value: '\xA7" set...' for column 'image' at row 1

Detailierte Fehlermeldung:

Client Version: 4.2.454.47473

Java Version: 1.7.0 Oracle Corporation

FSVersion=4.2.454.47473#2659;JDK=1.7.0 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=08.02.2012 09:39:00

de.espirit.or.ORException: Error code: 1366, state: HY000

    at de.espirit.or.impl.TemporalCommandHandler.handle(TemporalCommandHandler.java:147)

    at de.espirit.or.impl.CreateRelationCommand.accept(CreateRelationCommand.java:94)

    at de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:642)

    at de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:74)

    at de.espirit.firstspirit.content.ContentManagerImpl$TemporalSessionHandler.commit(ContentManagerImpl.java:1207)

    at de.espirit.firstspirit.content.ContentManagerImpl.commit(ContentManagerImpl.java:630)

    at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:62)

    at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:91)

    at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:67)

    at de.espirit.firstspirit.server.io.ManagerCallWorker.run(ManagerCallWorker.java:108)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:553)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:520)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)

    at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

    at java.lang.Thread.run(Thread.java:662)

    at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:36)

Caused by: java.sql.SQLException: Incorrect string value: '\xA7" set...' for column 'image' at row 1

    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)

    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)

    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)

    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)

    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)

    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)

    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)

    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)

    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)

    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)

    at com.mysql.jdbc.UpdatableResultSet.updateRow(UpdatableResultSet.java:2411)

    at de.espirit.or.impl.TemporalCommandHandler.updateForeignKey(TemporalCommandHandler.java:430)

    at de.espirit.or.impl.TemporalCommandHandler.handle(TemporalCommandHandler.java:137)

    at de.espirit.or.impl.CreateRelationCommand.accept(CreateRelationCommand.java:94)

    at de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:642)

    at de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:74)

    at de.espirit.firstspirit.content.ContentManagerImpl$TemporalSessionHandler.commit(ContentManagerImpl.java:1207)

    at de.espirit.firstspirit.content.ContentManagerImpl.commit(ContentManagerImpl.java:630)

    at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:62)

    at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:91)

    at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:67)

    at de.espirit.firstspirit.server.io.ManagerCallWorker.run(ManagerCallWorker.java:108)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:553)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:520)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)

    at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

    at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:372)

    at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:49)

    at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:52)

    at de.espirit.firstspirit.server.$Proxy33.commit(Unknown Source)

    at de.espirit.firstspirit.store.access.templatestore.SessionHandlerImpl.commit(SessionHandlerImpl.java:113)

    at de.espirit.or.impl.SessionImpl.doCommit(SessionImpl.java:191)

    at de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:521)

    at de.espirit.firstspirit.store.access.contentstore.DatasetImpl.save(DatasetImpl.java:938)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.AbstractGuiXmlPanel.save(AbstractGuiXmlPanel.java:460)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel.persist(ContentGuiXmlPanel.java:394)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel.persist(ContentGuiXmlPanel.java:364)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel.save(ContentGuiXmlPanel.java:359)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel$GuiXmlToolbar$2.actionPerformed(ContentGuiXmlPanel.java:553)

    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

    at de.espirit.firstspirit.common.gui.FsButton.fireActionPerformed(FsButton.java:86)

    at de.espirit.firstspirit.common.gui.StoreHoverButton.fireActionPerformed(StoreHoverButton.java:97)

    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

    at java.awt.Component.processMouseEvent(Unknown Source)

    at javax.swing.JComponent.processMouseEvent(Unknown Source)

    at java.awt.Component.processEvent(Unknown Source)

    at java.awt.Container.processEvent(Unknown Source)

    at java.awt.Component.dispatchEventImpl(Unknown Source)

    at java.awt.Container.dispatchEventImpl(Unknown Source)

    at java.awt.Component.dispatchEvent(Unknown Source)

    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

    at java.awt.Container.dispatchEventImpl(Unknown Source)

    at java.awt.Window.dispatchEventImpl(Unknown Source)

    at java.awt.Component.dispatchEvent(Unknown Source)

    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

    at java.awt.EventQueue.access$000(Unknown Source)

    at java.awt.EventQueue$3.run(Unknown Source)

    at java.awt.EventQueue$3.run(Unknown Source)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

    at java.awt.EventQueue$4.run(Unknown Source)

    at java.awt.EventQueue$4.run(Unknown Source)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

    at java.awt.EventQueue.dispatchEvent(Unknown Source)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:130)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:115)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:108)

    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

0 Kudos
1 Solution

Accepted Solutions

Hallo Herr Wehe,

das sieht sehr stark nach einem Konfigurationsproblem der Mysql bzgl. Encoding aus.

Steht die Collation von Table und Columns auf UTF-8?

Viele GrรผรŸe

Jรถrg Stephan

View solution in original post

0 Kudos
7 Replies
Jan_Wehe
I'm new here

Zusatzinfo:

Es wird eine MySQL Datenbank eingesetzt.

Auf dem Testserver wird die DerbyDB genutzt, dort tritt derFehler nicht auf.

Auch bei einem anderen Datensatz, bei dem ich eine Bild Referenz speichern mรถchte, tritt besagter Fehler auf.

0 Kudos

Nachtrag 2:

Nun tritt der Fehler auch auf, wenn ich aus der Produktdatenbank einen Datensatz lรถschen mรถchte.

Gibt es da bekannte Probleme oder Fallstricke, wenn eine MySQL Datenbank genutzt wird?

Client Version: 4.2.454.47473

Java Version: 1.7.0 Oracle Corporation

FSVersion=4.2.454.47473#2659;JDK=1.7.0 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=08.02.2012 14:00:32

de.espirit.or.ORException: Error code: 1366, state: HY000

...

Caused by: java.sql.SQLException: Incorrect string value: '\xA7" set...' for column 'specification' at row 1

0 Kudos

Hallo Herr Wehe,

das sieht sehr stark nach einem Konfigurationsproblem der Mysql bzgl. Encoding aus.

Steht die Collation von Table und Columns auf UTF-8?

Viele GrรผรŸe

Jรถrg Stephan

0 Kudos

Hallo,

vielen Dank fรผr Ihre Antwort. Wie das Encoding der Tabellen und Spalten konfiguriert ist kann ich derzeit leider noch nicht genau sagen, ich bemรผhe mich grade um direkten Zugriff auf die Datenbank.

Vielleicht sind auch schon die Verbindungseinstellungen problematisch? FolgendermaรŸen ist der Zugriff auf die DB konfiguriert (DBNAME, HOST und DBUSER sind natรผrlich nur Platzhalter):

jdbc.SCHEMA     = DBNAME

jdbc.layerclass = de.espirit.or.impl.mysql.MySQLLayer

jdbc.DRIVER     = com.mysql.jdbc.Driver

jdbc.URL        = jdbc:mysql://HOST:3306/DBUSER?useUnicode=true&characterEncoding=UTF8

0 Kudos

Hallo,

haben Sie inzwischen die Konfiguration der Datenbank herausfinden kรถnnen?

Die Verbindungseinstellungen lassen auf den ersten Blick keine Fehler erkennen.

Viele GrรผรŸe

Rouven

0 Kudos

Hallo,

es lag daran, dass die Datenbank ISO-8859-1 encodet war. Nach Umstellung auf UTF-8 sind die Fehler verschwunden.

Eine Frage zum Encoding hรคtte ich aber noch:

Der Kunde mรถchte Teile der Webseite auch auf japanisch, koreanisch und chinesisch anbieten. Kรถnnen diese Sprachen vom firstSpirit Admin hinzugefรผgt werden und muss das Encoding dazu auf UTF-16 geรคndert werden?

0 Kudos

Das ist schรถn, dass das Problem schonmal gelรถst ist.

Die Sprachen kรถnnen genauso angelegt werden, wie alle anderen Sprachen auch. Hier sollte es also keinerlei Probleme geben. Da UTF-8 und UTF-16 sich nur dahingehend unterscheiden, dass eine unterschiedliche Anzahl Bytes zur Kodierung verwendet wird, die beiden aber ansonsten dieselben Sprachen unterstรผtzen, kann das Encoding auch auf UTF-8 bleiben.

Viele GrรผรŸe

Rouven

0 Kudos

Type a product name