AnsweredAssumed Answered

Acentos y ñ al usar WebScripts

Question asked by igomez on Feb 28, 2012
Latest reply on Feb 29, 2012 by igomez
Hola.

Tengo una aplicación en Java que a través de llamadas a los webscripts de Alfresco realiza ciertas acciones en el mismo.

Algunas de ellas son el alta de personas y de comunidades.

El caso es que cuando añado personas o comunidades y estas llevan algún acento o ñ en la plataforma no se añade correctamente.
El código Java que utilizo es este:

      
String alfrescoUser = "usr0000000123";
String alfrescoFirstName = "José Miguel";
String alfrescoLastName = "Español";
String alfrescoEmail = "pruebas@mail_pruebas123.com";
      
JSONObject personaJSON = new JSONObject();
personaJSON.put("userName", alfrescoUser);
personaJSON.put("firstName", alfrescoFirstName);
personaJSON.put("lastName", alfrescoLastName);
personaJSON.put("email", alfrescoEmail);
      
postRequest = new HttpPost("http://'+ host + ":" + port + "/alfresco/service/api/people?alf_ticket=" + alfTicket);

input = new StringEntity(personaJSON.toString());
input.setContentType("application/json; charset=UTF-8");
input.setContentEncoding("UTF-8");
postRequest.setHeader("Content-Type","application/json; charset=UTF-8");
postRequest.setEntity(input);
response = httpClient.execute(postRequest);

He puesto lo del UTF-8 en varios sitios para forzarle pero aún asi nada, me salen cosas de este estilo: Espa�ol, Jos�.

He buscado por foros y demás y he probado lo siguiente, pero en ningún caso funciona:

1- En el setenv.bat en tomcat/bin tengo lo siguiente:

set JAVA_HOME=C:\Alfresco\java               
set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 -Djava.file.encoding=UTF-8 -Duser.languaje=es -Duser.region=ES -XX:PermSize=256m
set CATALINA_OPTS=%CATALINA_OPTS% -Dfile.encoding="UTF-8"

2- En el fichero tomcat/conf/web.xml, las primeras líneas como:
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>fileEncoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
          <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

3- En el fichero tomcat/conf/server.xml el siguiente código:

    <Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1" 
               connectionTimeout="20000"
               redirectPort="8443" />

He puesto trazas en mi Java y los datos que salen hacia Alfresco salen bien:

Datos de la persona : {"password":"nadadenada","userName":"usuario_pruebas04","email":"pruebas@mail_pruebas123.com","firstName":"Usuario","lastName":"Pruebás"}Codigo: 200

Pero el servidor me responde ya con el encoding mal:
Respuesta del servidor …. 

<< Response: HTTP/1.1 200 OK
{
   "url": "\/alfresco\/service\/api\/person\/usuario_pruebas06",
   "userName": "usuario_pruebas06",
   "enabled": true,
   "firstName": "Usuario",
   "lastName": "Prueb\ufffds",
   "jobtitle": null,
   "organization": null,
   "location": null,
   "telephone": null,
   "mobile": null,
   "email": "pruebas@mail_pruebas123.com",
   "companyaddress1": null,
   "companyaddress2": null,
   "companyaddress3": null,
   "companypostcode": null,
   "companytelephone": null,
   "companyfax": null,
   "companyemail": null,
   "skype": null,
   "instantmsg": null,
   "userStatus": null,
   "userStatusTime": null,
   "googleusername": null,
   "quota": -1,
   "sizeCurrent": 0,
   "emailFeedDisabled": false,
   "persondescription": null
}

Seguiré buscando más información a ver si consigo algo. Mientras tanto, ¿a alguien le ha pasado algo parecido o sabe dónde podría estar el problema?

Muchas gracias!

Outcomes