- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
URIEncoding und <jsp:include
Auf die Gefahr hin, mich als Deppen zu outen:
wir erhalten bei per <jsp:include eingebundene Snippets doppelt UTF-8 encodierte Links.
Auf unseren Frontend-Servern landet de Content per Verรถffentlichungs-Servlet, das file.Encoding ist รผberall utf-8. Auf den Frontend lรคuft Tomcat. URIEncoding in server.xml ist ebenfalls auf utf-8 gesetzt.
Im Preview (Jetty, Firstspirit) wird alles normal angezeigt, auf den Tomcat auf der Haupteite alles okay, dort wo die <jsp:include einsetzen doppeltes UTF-8-Encoding.
Meine Vermutung ist,
Irgendeinne Idee?
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
die generierten Seiten enthalten noch korrekt codierte Links?
Das Deployment in FirstSpirit ist erst einmal unabhรคngig davon, welcher jsp Code geschrieben wird und sollte deshalb noch korrekt funktionieren.
Ich kรถnnte mir deshalb als mรถgliche Fehlerquellen die Konfiguration des Tomcats oder ein fehlerhaftes jsp Dokument vorstellen.
Viele Grรผรe
Rouven
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nah, die Sache wird noch komplizierter.
Neben der รbertragung per doStore(), die man durchaus mit request.setCharacterEncoding() beeinflussen kann und den zusรคtzlichen <init-param> in der web.xml mit formEncoding haben wir festgestellt, daร man dem JDBC-Connector/J fรผr MySQL 5.x auch noch einen
&useUnicode=true&characterEncoding=UTF8
mitgeben kann. Die alles entscheidende Frage nun - muร ich bei Umstellung die gesamte DB neu importieren/exportieren oder bleiben die Daten valide?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wenn du auf der sicheren Seite sein willst, wirst du die Daten importieren/exportieren, ggf. sogar konvertieren mรผssen. Kommt darauf an, was fรผr ein Encoding die Datenbank vorher hatte und welche Zeichen in den bisherigen Daten vorhanden sind.
Ein paar Links, die vielleicht helfen:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich glaube es lรคuft in erster Linie auf die richtige Nutzung des FSIntegration-Modules (DynamicDatabaseAccess), deren Implementierung in den Templates hinaus. Habt ihr da Erfahrung?
Die Umstellung des Datenbankzugriffs ergab รผble Exceptions:
de.espirit.or.ORException: java.sql.SQLException: Incorrect string value: '\xC2\x84\xC3\x83\xC2\x96...' for column 'sn0' at row 1 / SQL = INSERT INTO fs_ds.users (sector, position_, mail, sn0, facsimiletelephonenumber, department, isregion, street, housenumber, companyname, iscompany, country, city, fs_gid, mobiletelephonenumber, username, title, academictitle, isinactive, readablepwd, cn0, telephonenumber, zipcode, salutation0, parent_id,
fs_id, fs_valid_from, fs_valid_to, fs_release_to)VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?) / null / [sector (12): IT-Unternehmen=>;IT-Unternehmen, position_ (12): , mail (12): khamsonh.marcel@khounlivong.de, sn0
(12): รโรโรล Khounlivong, facsimiletelephonenumber (12): , department (12): IT, isregion (16): false, street (12): Dittrichring, housenumber (12): 17, companyname (12): PIN Khounlivong, iscompany (16): false, country (12): , city (12): Leipzig, fs_gid (-2): 979b3dc5-5145-4ed6-b196-8ace2d0a7a98,
mobiletelephonenumber (12): +49 (0)177-59039-50, username (12): khamsonh.marcel@khounlivong.de, title (12): , academictitle (12):
Dipl.-Ing., isinactive (16): true, readablepwd (12): not-generated-yet, cn0 (12): Khamsonh รยครยถรยผรลธ, telephonenumber (12): +49 (0)341-98989-15, zipcode (12): 04109, salutation0 (12): Herr, parent_id (-5): 1735, fs_id (4): 43328, fs_valid_from (-5): 1368413455001, fs_valid_to (-5): 223372036854775807, fs_release_to (-5): 0]
Nested message: Incorrect string value: '\xC2\x84\xC3\x83\xC2\x96...' for column 'sn0' at row 1
de.espirit.or.impl.AbstractUpdateStatement.execute(AbstractUpdateStatement.java:171)
de.espirit.or.impl.AbstractUpdateStatement.executeUpdate(AbstractUpdateStatement.java:74)
de.espirit.or.impl.TemporalCommandHandler.handle(TemporalCommandHandler.java:77)
de.espirit.or.impl.CreateCommand.accept(CreateCommand.java:49)
de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:655)
de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:77)
de.espirit.or.impl.SessionImpl.doCommit(SessionImpl.java:195)
de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:568)
de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:554)
de.espirit.firstspirit.opt.integration.web.StoreServlet.doStore(StoreServlet.java:259)
de.espirit.firstspirit.opt.integration.web.StoreServlet.doPost(StoreServlet.java:140)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
de.espirit.firstspirit.acl.servlet.MultiAccessControlFilter.doFilter(MultiAccessControlFilter.java:110)
root cause
java.sql.SQLException: Incorrect string value: '\xC2\x84\xC3\x83\xC2\x96...' for column 'sn0' at row 1
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815)
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
de.espirit.or.impl.AbstractUpdateStatement.execute(AbstractUpdateStatement.java:169)
de.espirit.or.impl.AbstractUpdateStatement.executeUpdate(AbstractUpdateStatement.java:74)
de.espirit.or.impl.TemporalCommandHandler.handle(TemporalCommandHandler.java:77)
de.espirit.or.impl.CreateCommand.accept(CreateCommand.java:49)
de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:655)
de.espirit.or.impl.AbstractSessionHandler.commit(AbstractSessionHandler.java:77)
de.espirit.or.impl.SessionImpl.doCommit(SessionImpl.java:195)
de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:568)
de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:554)
de.espirit.firstspirit.opt.integration.web.StoreServlet.doStore(StoreServlet.java:259)
de.espirit.firstspirit.opt.integration.web.StoreServlet.doPost(StoreServlet.java:140)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
de.espirit.firstspirit.acl.servlet.MultiAccessControlFilter.doFilter(MultiAccessControlFilter.java:110)
Wie mรผssen unsere Entwickler die Formulare gestalten?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
da ich annehme, dass Rouvens und Christophs Antworten weitergeholfen haben, markiere ich diesen Thread als beantwortet.
Sollten weitere Fragen bestehen, bitte ein neues Posting erรถffnen.
Viele Grรผรe
Michaela

