ruta de actualización de archivos XML con llamada de descanso

DrunkCoder:

Quiero programar una llamada de API REST para actualizar una cadena de una clase, que contiene el nombre de archivo de un archivo XML.

Estoy tratando de hacerlo con una llamada GET ... Pero puede ser una opción más adecuada.

Esta es una muestra url: http: // localhost / ChangeXML archivoConfig = Configuration.xml

@RequestMapping(value = "/changeXML",params= {"configFile"}, produces = { MediaType.APPLICATION_XML_VALUE},
        headers = "Accept=application/xml",method = RequestMethod.GET)
public ResponseEntity<?> updateConfigFile(@RequestParam("configFile") String file) { 

    File f = new File(file);
    System.out.println(f);
    if(f.exists() && !f.isDirectory()) { //file is updated if and only if it exisits 
        System.out.println("FICHERO SI QUE EXISTEEEEE");
        this.configFile=file;   
        return new ResponseEntity<String>("XML configuration file has been updated to: "+file, HttpStatus.OK);
    }
    System.out.println("PETITION");
    //otherwise path is not going to be updated    
    return new ResponseEntity<String>("Unexisting XML", HttpStatus.OK);
} 

Todo lo que quiero es el atributo archivoConfig actualizada. Pero aún así, toda vez que la aleta es el siguiente error: Esta página contiene los siguientes errores: error en la línea 1 en la columna 1: El documento está vacío A continuación se muestra una representación de la página hasta el primer error.

Mi xml puedo asegurar que estaba bien y ... incluso si pongo este otro URL, http: // localhost / ChangeXML archivoConfig = c% C3% B1dlvm% C3% B1ldfmv? Todavía tengo el mismo error.

Podría alguien proporcionar alguna información sobre esto? ¡Gracias por adelantado!

g00glen00b:

Dentro de su @RequestMappinganotación, usted ha puesto el MediaType.APPLICATION_XML_VALUEvalor para el producesparámetro. Esto significa que usted informe a su navegador que la respuesta contendrá XML.

Sin embargo, si se toma un vistazo a las respuestas, usted está volviendo texto sin formato en lugar de él. Su navegador probablemente intenta analizar esto como XML, pero no puede, y arroja un error.

La solución es decirle a su navegador que usted está volviendo texto sin formato, que es el text/plaintipo de soporte o MediaType.TEXT_PLAINen la primavera:

@RequestMapping(
    value = "/changeXML",
    params= {"configFile"},
    produces = {MediaType.TEXT_PLAIN}, // Change this
    headers = "Accept=application/xml", 
    method = RequestMethod.GET)

En este caso, es probable que pueda salir fuera del producesparámetro del todo, ya que la primavera va a ser capaz de resolver automáticamente este. Aún más, el headersy paramslos parámetros no son necesarios, ya sea en este caso, por lo que sólo podría escribir:

@RequestMapping(value = "/changeXML", method = RequestMethod.GET)

O incluso más corto:

@GetMapping("/changeXML")

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=195430&siteId=1
Recomendado
Clasificación