JSF @Prefix + JPA | Unicodeproblem

F.S.WhiTeY

Bekanntes Mitglied
Hallo Leute,

ich hab irgendwie ein Problem den richtigen charset in meine Datenbank zu bekommen.
Ich arbeite mit JSF 2.0 + PrimeFaces + JPA 2.0 (EclipseLink).

Ich habe schon in der persistence.xml die DatenbankURL geändert:

[XML]
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://meineURL:3306/meineDatenbank?useUnicode=true&amp;characterEncoding=UTF-8"/>
[/XML]

Dann hab ich im Vorfeld den standart Charset bei der Datenbank gesetzt.

SQL:
ALTER DATABASE meindeDatenbank DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Hatte vorher alle Tabellen gelöscht und sie danach neu anlegen lassen.

Dann habe ich in den .xhtml dateien das charset angegeben.

[XML]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//DE" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="de"
...
...
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
...
</h:head>
...
...
[/XML]

dann hab ich in der faces-config.xml die lokalisierung angegeben:

[XML]
<application>
<locale-config>
<default-locale>de</default-locale>
</locale-config>
</application>
[/XML]

Das nutzt aber scheinbar alles nichts da ich immernoch nicht in der lage bin über ein
Code:
<h:inputText>
sonderzeichen und umlaute in die DB zu schreiben. Da steht alles dirn aber nicht das was ich da rein haben will ^_^

hat einer ne idee wie ich dem Fehler auf den grund gehen kann?

LG und danke

WhiTeY
 

F.S.WhiTeY

Bekanntes Mitglied
Hab es mit zwei verschiedenen probiert. Einmal Tomcat 7.0.14.0 und mit dem GlassFish 3.1

hab bei beiden nicht funktioniert.

LG und danke fürs gedanken machen

WhiTeY
 

Fant

Bekanntes Mitglied
Für den GlassFish kannst du mal

Code:
<parameter-encoding default-charset="UTF-8"/>

in die /WEB-INF/glassfish-web.xml eintragen.

Insgesamt könnte die Datei dann etwa so aussehen:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
  <parameter-encoding default-charset="UTF-8"/>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</glassfish-web-app>

Vielleicht hilft das... Für den Tomcat gibt es bestimmt eine vergleichbare Lösung.

Gruß Fant
 
N

nillehammer

Gast
Ich nehme mal an, die Daten, die Du speichern möchtest, werden über HTML-Formulare eingegeben. Deswegen mach noch zusätzlich folgendes:
Code:
<form accept-charset="UTF-8">
 

F.S.WhiTeY

Bekanntes Mitglied
Ich lach mich tot es geht...

Die Glassfish config hat es gebracht.

Kennt jemand das äquivalent für den tomcat? Ich denke wenn es fertig ist soll es auf der katze laufen. wäre also gut das im vorfeld zu wissen ;)

ich bemühe aber google auch noch mal.


Ich danke euch für die hilfe

LG

WhiTeY
 

F.S.WhiTeY

Bekanntes Mitglied
Beim Tomcat scheint das wohl so zu laufen:

In der Server.xml aus dem conf ordner folgendes eintragen:
[XML]
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
compression="on"
compressionMinSize="128"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
URIEncoding="UTF-8"
/>
[/XML]

Wobei die letzten beiden zeilen wohl das entscheidende sind. Ich hab es allerdings noch nicht getestet.


LG

WhiTeY
 

Neue Themen


Oben