2

MySQLデータベーステーブルをWebサービスとして公開するDataNucleusJDOWebアプリケーションがあります。表の行の1つに、ロシア語のテキストが含まれています。Webサービスがその行を返すと、そのテキストは?として表示されます。

これが私がこれまでに試したことです:

  1. MySQLデータベーステーブルのデータが実際に正しくエンコードされていることを確認しました。MySQL Workbenchでデータを表示すると、正しく表示されます。
  2. データベースに接続して行を出力するだけの小さなMySQLクライアントをJavaで書いてみました。最初、私は同様の出力(すべて?)を受け取っていました。次に、JVM引数を使用してクライアントを実行してみましたが、動作-Dfile.encoding=UTF-8しました。
  3. TomcatでWebサービスを実行しています。-Dfile.encoding=UTF-8catalina.batのJAVA_OPTSに追加してみましたが、変更はありませんでした。
  4. jdoconfig.xmlで参照されているpom.xmlファイルのプロパティとしてJDBC接続URLを指定しています。接続URLに追加?useEncoding=true&characterEncoding=UTF-8しようとしましたが、Webサービスにアクセスしようとすると、次のNullPointerExceptionエラーが発生し続けます。

    java.lang.NullPointerException org.datanucleus.api.rest.RestServlet.doGet(RestServlet.java:271)javax.servlet.http.HttpServlet.service(HttpServlet.java:621)javax.servlet.http.HttpServlet.service(HttpServlet .java:728)

私は今、すべてアイデアがありません。UTF-8エンコーディングをサポートするメディアで出力を表示していることを確認するように注意しました。私はDataNucleusとJDOAPIの経験があまりないので、それに関連する何かが欠けているのではないかと思います。

4

0 に答える 0