org.eclipse.jetty.util.ajax.JSON.toString()  produces a JSON formatted
string.

The error you are getting back is an XML?
XML encoding is different then JSON encoding.

org.eclipse.jetty.util.ajax.JSON.toString() tries to follow the guidance at
https://tools.ietf.org/html/rfc8259#section-8

Perhaps you have some oddball charset declaration getting in your way.
I don't know how ADM works, but if you are submitting the JSON to them in
an HttpClient, make sure your `Content-Type` request header says something
like "application/json; charset=utf-8"
If ADM is issuing requests to your server, then make sure your
`Content-Type` response header has "application/json; charset=utf-8"


Joakim Erdfelt / [email protected]

On Wed, Mar 28, 2018 at 10:01 AM, Alexander Farber <
[email protected]> wrote:

> Hello fellow Jetty users and developers,
>
> is it please possible to escape UTF-8 characters when using
>
> org.eclipse.jetty.util.ajax.JSON.toString() method?
>
> I understand that it might be an internal library, but until now it
> works well for me in a servlet which among other tasks sends push
> notifications via FCM (Firebase Cloud Messaging) and ADM (Amazon
> Device Messaging).
>
> However my problem with the latter is that ADM does not accept any
> UTF-8 chars (in my case Cyrillic) and reproducibly fails with the
> cryptic error message:
>
> <SerializationException>
> <Message>Could not parse XML</Message>
> </SerializationException>
>
> java.lang.IllegalStateException:
> unknown char '<'(60) in |||<SerializationException>|  <Message>Could
> not parse XML</Message>|</SerializationException>||
>
> So is there maybe some possibility in Jetty 9.4.8.v20171121 to encode the
> chars?
>
> Here is my Java code:
>
>     // this string is POSTed to ADM server
>     public String toAdmBody() {
>         Map<String, Object> root  = new HashMap<>();
>         Map<String, String> data  = new HashMap<>();
>         root.put(KEY_DATA, data);
>         data.put(KEY_BODY, mBody);
>         // ADM does not accept integers
>         data.put(KEY_GID, String.valueOf(mGid));
>         // TODO encode utf8 chars
>         return JSON.toString(root);
>     }
>
> Thank you
> Alex
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to