- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Fehler beim Speichern einer Bild Referenz
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)
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

