Web service json problema encoding caratteri

Fabrizio Attanasio, modified 6 Years ago. Junior Member Posts: 54 Join Date: 1/29/16 Recent Posts
Ciao a tutti,
ho riscontrato un problema in un web service implementato su Liferay 6.2ce gae5
In pratica quando gli passo i parametri con delle lettere accentate tipo ò à ì, il ws non interpreta bene i caratteri dei parametri.
Qualcuno ha una soluzione da indicarmi?

Questo è il mio web service :

@AccessControlled(guestAccessEnabled=true)
    @JSONWebService(method="POST",value="/registraUser")
    public Object registraUser(String nome,String cognome){
    ....
    ....

    }


e questo è il client java dove lo chiamo:
String urlString=urlWsPortalApplication;
        //GET TOKEN ---------------------------------------------------------------------------------------

        URL url = new URL(urlString+"registraUser");
        HttpURLConnection con = (HttpURLConnection) url.openConnection();

        con.setRequestMethod("POST");
        String urlParameters = "nome="+nome+"&cognome="+cognome;

        // Send post request
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();

        int responseCode = con.getResponseCode();

        ....


Ripeto funziona tutto bene tranne che per le parole accentate dove me le sostituisce con dei simboli strani.

Grazie
thumbnail
Daniele Baggio, modified 6 Years ago. Expert Posts: 336 Join Date: 12/5/08 Recent Posts
Fabrizio,

in questo tipo di problemi di solito Liferay è l'ultimo pezzo a cui dare la colpa.
Ci possono essere impostazioni da verificare a livello di JVM, di database, di Tomcat, di Apache httpd che gli sta di fronte magari.

Primo test:
inserisci un utente con dei caratteri unicode attraverso il portale, modo standard, e vedi se Liferay mantiene il testo corretto.

​​​​​​​
Fabrizio Attanasio, modified 6 Years ago. Junior Member Posts: 54 Join Date: 1/29/16 Recent Posts
Ciao Daniele,
ho risolto aggiungendo questa linea di codice al mio client java...

wr.write(urlParameters.getBytes("UTF-8"));

Ora è tutto ok.

Grazie ancora. Saluti