Erholsamen erzeugt Binär-Datei
Ich bin neu mit CXF und Spring, um RESTful webservices.
Dies ist mein problem: ich möchte einen Dienst erstellen, der produziert "jede" Art der Datei(können Bild -, Dokument -, txt oder auch pdf), und auch eine XML. Bisher habe ich diese code:
@Path("/download/")
@GET
@Produces({"application/*"})
public CustomXML getFile() throws Exception;
Ich weiß nicht genau, wo zu beginnen, so seien Sie bitte geduldig.
EDIT:
Komplette code von Bryant Luk(danke!)
@Path("/download/")
@GET
public javax.ws.rs.core.Response getFile() throws Exception {
if (/* want the pdf file */) {
File file = new File("...");
return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM)
.header("content-disposition", "attachment; filename =" + file.getName())
.build();
}
/* default to xml file */
return Response.ok(new FileInputStream("custom.xml")).type("application/xml").build();
}
- Versuchen Sie zu Beginn erklären, was dein problem ist. So weit, Sie haben nur beschrieben, was Sie getan haben, aber Sie haben nicht erwähnt, was passiert wenn der code ausgeführt wird, welche Fehler Sie gestoßen bin, etc.
- Sie werden versuchen, die Rahmenbedingungen rufen Sie Ihren
getFile()
für jede Anforderung unter/download
, so dass Sie produzieren können die angeforderte Datei? Ich denke, was Sie fordern, in diesem Fall, wie die Umsetzung dergetFile()
finden Sie heraus, was war eigentlich angefordert. - ja, ich hoffe, dass ist nicht viel zu Fragen für die Implementierung und annotation-Typ
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es wird wieder jede Datei, möchten Sie vielleicht, um Ihre Methode mehr "generic" und return ein javax.ws.rs.core.Antwort Sie können den Content-Type-header programmatisch:
Wir auch verwenden, CXF und Spring, und das ist mein vorzuziehen API.