From: Tatsuya K. <tat...@ma...> - 2002-12-25 20:50:58
|
Hi, On 12/23/02 11:22 AM America/New York, Tatsuya Kawano wrote: > (I heard WO 5.2's WebService feature wouldn't handle Japanese > characters and I'd like to investigate it.) It turned out to be a combination issue with WOMessage and EOQualifier. Hidekazu Tabata figured out the reasons at the Japanese WebObjects mailing list. (I believe he's also on this list.) The first reason is the encoding setting of WOMessage. By default, it's set to ISO8859_1 (ISO Latin 1) even though web services always use UTF8 for content encoding. Therefore, the workaround will be to set UTF8 as the content encoding. If your app only provides web services, you can workaround this by calling WOMessage.setDefaultEncoding("UTF8") during the application launch. If your app also provides regular HTTP connections, you won't be able to setDefaultEncoding to UTF8. Instead, you'll need to create a subclass of com.webobjects.appserver._private.WOWebServiceRequestHandler and override handleRequest() method with setContentEncoding(). The second reason is that if you put non-ASCII characters into the "format" part instead of the "arguments" part of EOQualifier.qualifierWithQualifierFormat(String format, NSArray arguments) these non-ASCII characters will get corrupted. (Note that non-ASCII characters could be some European accent characters.) com.webobjects.webservices.generation.WOSearchOperation's qualifier() method uses this "format" way by calling WOServiceUtilities.buildQualifier(), which causes non-ASCII characters can't be used for search operations. To workaround this, I think the easiest way will be to create a subclass of WOSearchOperation and override qualifier() method. Then install the patched subclass by using _NSUtilities.setClassForName() method. WOSearchOperation is a subclass of WOComponent, and I'm hoping setClassForName will work with WOSearchOperation, otherwise you have to freeze search components to apply the patch. By the way, if I want to submit the patch to Wonder, what will be the best way? I think ERExtensions will be the most suitable framework to put such kind of patches, but you will need WebServicesGeneration framework in order to build the framework and that framework is only included in WO 5.2. On 12/2/02 8:24 PM America/New York, Max Muller wrote: > Let's shoot for just 5.1 for 1.0, we can then branch and keep the 1.0 > branch alive for patches/bugfixes. Then we can focus the trunk on 5.2. Probably, I'd better to wait until Wonder 1.0 release then integrate it into ERExtensions on the upcoming WO 5.2 trunk. What do you guys think? Thanks, Tatsuya -- Tatsuya Kawano New York NY 10016 E924 0D0D C0BF 3DCF 9F83 F2CD 20D1 8377 633A D84F |
From: Tabata H. <ta...@iw...> - 2002-12-26 05:54:47
|
Hi, On 2002.12.26, at 05:50 Asia/Tokyo, Tatsuya Kawano wrote: > On 12/23/02 11:22 AM America/New York, Tatsuya Kawano wrote: >> (I heard WO 5.2's WebService feature wouldn't handle Japanese >> characters and I'd like to investigate it.) > > It turned out to be a combination issue with WOMessage and EOQualifier. > > Hidekazu Tabata figured out the reasons at the Japanese WebObjects > mailing > list. (I believe he's also on this list.) I'm on this list!! Tabata |
From: Tatsuya K. <tat...@ma...> - 2003-01-07 11:17:05
|
OK, I've authored a patch framework for WO 5.2 Direct to Web Services and will be able to release it in few days. (Thanks Hidekazu for support!) I'm not going to include this to the Wonder collection for now, because I'm expecting Apple to address this issue pretty soon and our ER* frameworks still have to support WO 5.1 until we make the 1.0 release. (My patch framework requires WO 5.2 to compile.) I believe this patch is required when you use European accent characters in your Direct to Web Services application as well as Japanese characters. I'll make announcement at Omni Group's webobject-dev mailing list when it's released. Thanks, Tatsuya ------ Forwarded Message ------ From: Tatsuya Kawano <tat...@ma...> Date: Wed, 25 Dec 2002 15:50:53 -0500 To: wonder disc <won...@li...> Subject: [Wonder-disc] WO 5.2 Direct to Web Services and non-ASCII characters Hi, On 12/23/02 11:22 AM America/New York, Tatsuya Kawano wrote: > (I heard WO 5.2's WebService feature wouldn't handle Japanese > characters and I'd like to investigate it.) It turned out to be a combination issue with WOMessage and EOQualifier. Hidekazu Tabata figured out the reasons at the Japanese WebObjects mailing list. (I believe he's also on this list.) The first reason is the encoding setting of WOMessage. By default, it's set to ISO8859_1 (ISO Latin 1) even though web services always use UTF8 for content encoding. Therefore, the workaround will be to set UTF8 as the content encoding. If your app only provides web services, you can workaround this by calling WOMessage.setDefaultEncoding("UTF8") during the application launch. If your app also provides regular HTTP connections, you won't be able to setDefaultEncoding to UTF8. Instead, you'll need to create a subclass of com.webobjects.appserver._private.WOWebServiceRequestHandler and override handleRequest() method with setContentEncoding(). The second reason is that if you put non-ASCII characters into the "format" part instead of the "arguments" part of EOQualifier.qualifierWithQualifierFormat(String format, NSArray arguments) these non-ASCII characters will get corrupted. (Note that non-ASCII characters could be some European accent characters.) com.webobjects.webservices.generation.WOSearchOperation's qualifier() method uses this "format" way by calling WOServiceUtilities.buildQualifier(), which causes non-ASCII characters can't be used for search operations. To workaround this, I think the easiest way will be to create a subclass of WOSearchOperation and override qualifier() method. Then install the patched subclass by using _NSUtilities.setClassForName() method. WOSearchOperation is a subclass of WOComponent, and I'm hoping setClassForName will work with WOSearchOperation, otherwise you have to freeze search components to apply the patch. By the way, if I want to submit the patch to Wonder, what will be the best way? I think ERExtensions will be the most suitable framework to put such kind of patches, but you will need WebServicesGeneration framework in order to build the framework and that framework is only included in WO 5.2. On 12/2/02 8:24 PM America/New York, Max Muller wrote: > Let's shoot for just 5.1 for 1.0, we can then branch and keep the 1.0 > branch alive for patches/bugfixes. Then we can focus the trunk on 5.2. Probably, I'd better to wait until Wonder 1.0 release then integrate it into ERExtensions on the upcoming WO 5.2 trunk. What do you guys think? Thanks, Tatsuya -- Tatsuya Kawano New York NY 10016 E924 0D0D C0BF 3DCF 9F83 F2CD 20D1 8377 633A D84F ------ End of Forwarded Message ------ |