Buen día gente. Tengo el siguiente problema y no puedo encontrar la solución: tengo que consumir un Webservice hecho en .Net, el mismo tiene la siguiente estructura:
<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<string xmlns=\"http://tempuri.org/\">
<Perfiles>
<Perfil>EMPLEADO</Perfil>
<Perfil>CLIENTE</Perfil>
</Perfiles>
</string>
Se me ocurrió usar XStream para generar los objetos correspondientes al XML recibido. Para ellos, luego de agregar el jar correspondiente, hice el siguiente código:
String xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><string xmlns=\"http://tempuri.org/\"><Perfiles><Perfil>EMPLEADO</Perfil><Perfil>CLIENTE</Perfil></Perfiles></string>";
InputStream inputStream = new ByteArrayInputStream(xml.toLowerCase().getBytes("U TF-8"));
XStream xstream = new XStream(new DomDriver());
xstream.alias("string", PerfilesDTO.class);
xstream.alias("perfil", String.class);
xstream.addImplicitCollection(PerfilesDTO.class, "perfiles");
PerfilesDTO perfilesDTO = (PerfilesDTO)xstream.fromXML(inputStream);
El objeto PerfilesDTO tiene la siguiente propiedad:
private List<String> perfiles;
El error que me esta tirando es el siguiente:
Element perfil of type java.lang.String is not defined as field in type java.lang.Object ---- Debugging information ---- class : bancaempresas.dto.webservice.PerfilesDTO required-type : java.lang.Object path : /string/perfiles/perfil -------------------------------
Alguien podría decirme como puedo solucionar esto? Ya sea modificando los objetos (DTOs), utilizando otra forma de convertir el XML a objetos, etc. Lo que si, no puedo modificar la estructura del XML.
Agradezco cualquier ayuda.
Saludos.
Lucas.-