caminho de atualização de arquivo xml com a chamada descanso

DrunkCoder:

Eu quero programar uma chamada de API REST para atualizar uma String de uma classe, que contém o nome do arquivo de um arquivo xml.

Eu estou tentando fazê-lo com uma chamada GET ... Mas pode ser uma opção mais adequada.

Esta é uma amostra url: http: // localhost / changeXML configFile = 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);
} 

Tudo que eu quero é o atributo configFile atualizado. Mas ainda assim, tudo que eu sempre fin é o seguinte erro: Esta página contém os seguintes erros: Erro na linha 1 na coluna 1: Documento está vazio Abaixo está uma renderização da página até o primeiro erro.

Meu xml posso garantir que ele seja bem e ... mesmo se eu colocar essa outra url, http: // localhost / changeXML configFile = c% C3% B1dlvm% C3% B1ldfmv? Eu ainda tenho o mesmo erro.

alguém poderia fornecer alguma informação sobre isso? Desde já, obrigado!

g00glen00b:

Dentro de sua @RequestMappinganotação, você colocar o MediaType.APPLICATION_XML_VALUEvalor para o producesparâmetro. Isso significa que você informe o seu navegador que a resposta irá conter XML.

No entanto, se você der uma olhada nas respostas, você está retornando de texto simples no lugar. Seu navegador provavelmente tenta analisar isso como XML, mas não pode, e gera um erro.

A solução é dizer ao seu navegador que você está retornando de texto simples, que é o text/plaintipo de mídia ou MediaType.TEXT_PLAINna Primavera:

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

Neste caso, você provavelmente pode deixar fora o producesparâmetro inteiramente, como a Primavera vai ser capaz de resolver automaticamente este. Ainda mais, o headerse paramsparâmetros não são necessários nem neste caso, assim que você poderia simplesmente escrever:

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

Ou ainda mais curto:

@GetMapping("/changeXML")

Acho que você gosta

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