restサービスにbyte []を1つとして含むいくつかのパラメータを渡そうとしています。私がパラメータを消費してFileを構築するServiceメソッドでは...ファイルが壊れています。以下 は私のコードです:Spring Rest APIのパラメータとしてバイト配列を渡す方法
public class MultiParameters {
@JsonProperty(value="strName")
public String strName;
@JsonProperty(value="in")
public byte[] in;
public String strName2;
public String getStrName2() {
return strName2;
}
public void setStrName2(String strName2) {
this.strName2 = strName2;
}
public String getStrName() {
return strName;
}
public void setStrName(String strName) {
this.strName = strName;
}
public byte[] getIn() {
return in;
}
public void setIn(byte[] in) {
this.in = in;
}
はRestController:
@RequestMapping(value= "/upload", method = RequestMethod.POST)
public void upload(@RequestBody MultiParameters obj){
try {
System.out.println("str name : "+obj.getStrName());
System.out.println("str name2 : "+obj.getStrName2());
System.out.println("bytes lenghts : "+obj.getIn());
FileOutputStream fos = new FileOutputStream(new File("D:\\Test.txt"));
fos.write(obj.getIn());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
いずれかが、私はこっちにエラーが何であるかを知っていることはできますか?
入力をPost Manを使用してJSONの形式でRAWデータとして渡して、サービスをテストしています。
ありがとうございました。
public void setIn(byte [] in)この関数のbyte []? &uは、wrtitingの前にobj.geInのサイズを表示しましたか? –
はい。 Sizeを適切に印刷しています。 – Raghav
fos.flush()を追加してみてください。 –