[JAWS-users 0348] SimpleDBをJavaで使用する際の日本語の扱いについて

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[JAWS-users 0348] SimpleDBをJavaで使用する際の日本語の扱いについて

Okamoto Tohru
岡元と申します
はじめまして

早速ですが、SimpleDBを試していて日本語関連の処理が思うようにいきません。
参考になる情報があれば ご教授ください。

環境  Java 6
ライブラリ aws-java-sdk 1.2.0


http://blog.flect.co.jp/cto/2010/12/aws-sdk-for-jav.html
のコードを参考にしております。

上記のサイトのやりかたは問題ありませんでしたが、
日本語の文字列を格納して、検索しようとするとうまくいきません。

データの登録は問題ないようです。
ItemNameで取得する方法で問題ありませんでした。

具体的には
1. 日本語を項目名にする検索文を実行するとエラーメッセージが返却される
アプリケーションログです

INFO: Sending Request: POST https://sdb.ap-northeast-1.amazonaws.com /
Parameters: (Action: Select, SignatureMethod: HmacSHA256,
AWSAccessKeyId: xxxx, SignatureVersion: 2, Version: 2009-04-15,
Signature: +436aTMfgF+lghKJ9tQdS3ndqUqjXkXCEM8qkWXJ9Oc=, Timestamp:
2011-05-20T05:48:25.230Z, SelectExpression:\
 select name, author  from book where あauthor like "日本語Larry%" , )
May 20, 2011 5:48:31 AM com.amazonaws.http.AmazonHttpClient handleErrorResponse
INFO: Received error response: Status Code: 400, AWS Request ID:
e273a22e-6cbe-715a-f50b-0e200abd7661, AWS Error Code:
InvalidQueryExpression, AWS Error Message: The specified query
expression syntax is not valid.
Exception in thread "main" Status Code: 400, AWS Request ID:
e273a22e-6cbe-715a-f50b-0e200abd7661, AWS Error Code:
InvalidQueryExpression, AWS Error Message: The specified query
expression syntax is not valid.
        at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:500)
        at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:262)
        at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:166)
        at com.amazonaws.services.simpledb.AmazonSimpleDBClient.invoke(AmazonSimpleDBClient.java:739)
        at com.amazonaws.services.simpledb.AmazonSimpleDBClient.select(AmazonSimpleDBClient.java:197)
        at nss.App.main(App.java:63)


2. 日本語を値にする検索文を実行するとHITしない
 こちらは実行自体はエラーになりません。

回避策等ご存知の方いらっしゃいませんか?
こちらで試したのは 日本語部分を URLDecodeしてみたぐらいです。

また、他言語ではどうでしょうか?

--
------------------------------------------------------
Tohru Okamoto [hidden email]
-------------------------------------------------------
_______________________________________________
JAWS-users mailing list
[hidden email]
http://jaws-ug.jp/mailman/listinfo/jaws-users
Reply | Threaded
Open this post in threaded view
|

Re: [JAWS-users 0348] SimpleDBをJavaで使用する際の日本語の扱いについて

tottokug
得上と申します。

 私もSimpleDBで日本語を扱っておりますが、
 こんなことやりましたというのを書きます。

 select name, author  from book where あauthor like "日本語Larry%"
 というリクエストですが、
 select name, author  from `book` where `あauthor` like '日本語Larry%'
 といった感じで、ドメイン名やAttributeNameにはバッククォートを、
 検索する文字列にはシングルクォートを付けてみてください。

 昔自分も ドメイン名に . (ドット) が入っている物に対してリクエストした場合に
 1番と同じようなエラーが出ていたので、このようなクォートをするようにしたところ
 解決しましたので、もしかしたら参考になるかもです。
Reply | Threaded
Open this post in threaded view
|

[JAWS-users 0350] Re: SimpleDBをJavaで使用する際の日本語の扱いについて

Okamoto Tohru
得上様

岡元です
ありがとうございます。
動作することを確認しました。
たすかりました。


2011/5/20 tottokug <[hidden email]>:

> 得上と申します。
>
>  私もSimpleDBで日本語を扱っておりますが、
>  こんなことやりましたというのを書きます。
>
>  select name, author  from book where あauthor like "日本語Larry%"
>  というリクエストですが、
>  select name, author  from `book` where `あauthor` like '日本語Larry%'
>  といった感じで、ドメイン名やAttributeNameにはバッククォートを、
>  検索する文字列にはシングルクォートを付けてみてください。
>
>  昔自分も ドメイン名に . (ドット) が入っている物に対してリクエストした場合に
>  1番と同じようなエラーが出ていたので、このようなクォートをするようにしたところ
>  解決しましたので、もしかしたら参考になるかもです。
>
>
> --
> View this message in context: http://jaws-users.687672.n3.nabble.com/JAWS-users-0348-SimpleDB-Java-tp2964472p2964588.html
> Sent from the jaws-users mailing list archive at Nabble.com.
>
> _______________________________________________
> JAWS-users mailing list
> [hidden email]
> http://jaws-ug.jp/mailman/listinfo/jaws-users
>



--
------------------------------------------------------
Tohru Okamoto [hidden email]
-------------------------------------------------------
_______________________________________________
JAWS-users mailing list
[hidden email]
http://jaws-ug.jp/mailman/listinfo/jaws-users
Reply | Threaded
Open this post in threaded view
|

Re: [JAWS-users 0348] SimpleDBをJavaで使用する際の日本語の扱いについて

panpan2523
This post has NOT been accepted by the mailing list yet.
In reply to this post by Okamoto Tohru
As of yet, a few of the newest add ons to the Cartier collection are the: Lady's Roadster, Tank Americaine, Pasha 38mm White Gold, WG Tank Francaise, and the Pasha 35mm Chronograph. Other Cartier all-time watch favorites consists of the http://mycartieronline.com/Cartier-Love-Gold-category-8.html cartier online  Tank Francaise, 21 Chrono, Santos de Cartier, Roadster, Panth?re de Cartier, Cartier Divan, Cartier Pasha C, Pasha, Tank Basculante, Tank Americaine Chrono, and Must de Cartier.