EJB i polskie znaki - co z tym zrobić...?

0

Witam.
Od dwóch dni siedzę nad problemem internacjonalizacji programu opartego o technologię EJB 3.0. Mój problem polega na tym, że nie potrafię poradzić sobie z zapisem polskich znaków do bazy danych MySQL 5.0. Ze strony bazy wszystko jet ok - ustawiłem system kodowania i porównań na latin_2 i latin_2_general_ci, a robiąc wpis samym query browserem uzyskuję polskie znaki bez problemu. Problem polega na tym, że gdy używam komponentów EJB i menedżera encji do utrwalenia encji, a następnie mechanizmu JNDI do wpisania rekordu do bazy, zamiast polskich liter wpisywane są znaki zapytania. Próbowałem różnych konstruktorów łańcuchów, w których określałem charset i rodzaj kodowania, ale nie dało to żadnych rezultatów. Natomiast bardzo popularne rozwiązanie tej kwestii na wszelkich forach dyskusyjnych (określenie systemu kodowania w connectionstringu) legło w gruzach, ponieważ połączenie z bazą i wpis do niej jest realizowany przez mechanizm JNDI, tym samym nie ma możliwości wpływu na kodowanie przez tą metodę. Pisząc o problemie na jednym z forów otrzymałem odpowiedź, aby uruchomić aplikację z parametrem -Dfile.encoding=UTF-8, jednak nie za bardzo wiem gdzie umieścić ten zapis...
Narzędzia wykorzystywane przeze mnie to NetBeans 6.5, GlassFish v 2.2 i MySQL 5.0 CommunityEdition. Jako dostawca usługi JNDI występuje standardowo dla NB 6.5 Oracle TopLink. Czy ktoś może pomóc??
Pozdrawiam:
wojdyd

0

Sprawdź kodowanie ustawione w entitymanagerze.
No i oczywiście kodowanie pomiędzy stroną a kontenerem.
Ustaw filtr: http://forums.sun.com/thread.jspa?threadID=5382580&tstart=0

0

Czym się różni "utrwalenie encji" od "wpisania rekordu do bazy"?

Raczej używasz JDBC, a nie JNDI.
No i dlaczego chcesz ręcznie używać JDBC, jeżeli masz EntityManagera?

0

Koziołek, przeryłem całą konsolę administracyjną serwera aplikacyjnego i nie znalazłem informacji na temat kodowania na usłudze entitymanager, ani o kodowaniu między stroną a kontenerem... Gdzie szukać tego ustrojstwa...?

0

w plikach konfiguracyjnych przy opisie portu serwera powinien być URIEncoding.

0

Dla wszystkich bijących się z podobnymi problemami - temat polskich znaków został rozwiązany. Metodą trochę siłową, bo w konstruktorze aplikacji, z której pobieram dane do wpisania w bazę mysqlową, używam metody System.setProperty(), w której określam właściwość "file.encoding" i podaję kodowanie. Ale najważniejsze, że działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1