私は、xmlファイルのファイル名を含むクラスの文字列を更新するためのAPI REST呼び出しをプログラミングしたいです。
私は、GET呼び出しでそれをやろうとしています...しかし、より適切な選択肢があるかもしれません。
これは、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);
}
私が欲しいのは、属性であるたconfigFile更新します。しかし、それでもまだ、すべての私が今までフィンは、次のエラーがある:このページには、次のエラーが含まれています:行1でエラーを1列で:文書では、次の空で最初のエラーへのページまでのレンダリングです。
私のXMLは、私は細かいことを保証することができますし、...私は、この他のURLを入れた場合でも、のhttp:// localhost /をchangeXMLたconfigFile = C%C3%B1dlvm%C3%B1ldfmv私はまだ同じエラーを持っています。
誰かがこれについていくつかの情報を提供してもらえますか?前もって感謝します!
あなたの中@RequestMapping
の注釈、あなたが置かれているMediaType.APPLICATION_XML_VALUE
の値をproduces
パラメータ。あなたはレスポンスがXMLが含まれていることをブラウザに指示することをこれが意味。
あなたは回答を見てみる場合は、あなたが代わりにプレーンテキストを返します。お使いのブラウザは、おそらくXMLとしてこれを解析しようとすることはできませんが、およびエラーをスローします。
解決策は、あなたがあるプレーンテキスト、帰国していることを、あなたのブラウザを伝えることですtext/plain
メディアタイプを、またはMediaType.TEXT_PLAIN
春に:
@RequestMapping(
value = "/changeXML",
params= {"configFile"},
produces = {MediaType.TEXT_PLAIN}, // Change this
headers = "Accept=application/xml",
method = RequestMethod.GET)
この場合、あなたはおそらく離れて残すことができますproduces
春はこれを自動的に解決することができるようになりますように、完全にパラメータを。さらに、headers
そしてparams
あなただけ書くことができ、この場合、いずれかのように、パラメータは必要ありません。
@RequestMapping(value = "/changeXML", method = RequestMethod.GET)
またはさらに短いです。
@GetMapping("/changeXML")