com.Sonne.jersey.api.client.UniformInterfaceException (Rückgabe einer Antwort den status 400)

Ich versuche zum einrichten der Datei-upload Beispiel mit JAX-RS. Könnte ich die Projekt-und erfolgreich laden Sie die Datei in einem server-Standort. Aber ich bekomme die folgende Fehlermeldung, wenn die Datei Größe ist mehr als 10KB (komisch!!)

com.sun.jersey.api.client.UniformInterfaceException: POST http://localhost:9090/DOAFileUploader/rest/file/upload returned a response status of 400
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:607)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:507)
at com.sony.doa.rest.client.DOAClient.upload(DOAClient.java:75)
at com.sony.doa.rest.client.DOAMain.main(DOAMain.java:34)

Ich bin neu in JAX-RS und ich bin mir nicht sicher, was genau das Problem ist. Muss ich das setzen von einigen Parametern der client-Seite oder server-Seite (wie Größe, timeout etc)?

Dies ist das client-side code aufrufen von webservice:

public void upload() {
    File file = new File(inputFilePath);
    FormDataMultiPart part = new FormDataMultiPart();
    part.bodyPart(new FileDataBodyPart("file", file, MediaType.APPLICATION_OCTET_STREAM_TYPE));
    WebResource resource = Client.create().resource(url);
    String response = resource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(String.class, part);
    System.out.println(response);
}

Dies ist die server-side-code:

@Path("/file")
public class UploadFileService {

@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
        @FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail) {

    String uploadedFileLocation = "e://uploaded/"
            + fileDetail.getFileName();

    writeToFile(uploadedInputStream, uploadedFileLocation);

    String output = "File uploaded to : " + uploadedFileLocation;

    return Response.status(200).entity(output).build();

}

private void writeToFile(InputStream uploadedInputStream,
        String uploadedFileLocation) {

    try {
        OutputStream out = new FileOutputStream(new File(
                uploadedFileLocation));
        int read = 0;
        byte[] bytes = new byte[16000];

        out = new FileOutputStream(new File(uploadedFileLocation));
        while ((read = uploadedInputStream.read(bytes)) != -1) {
            out.write(bytes, 0, read);
        }
        out.flush();
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    } } } 

Bitte lassen Sie mich wissen, welche Einstellungen muss ich ändern für Datei-Größen, die größer als 10KB?

Dank!

InformationsquelleAutor user732362 | 2012-04-23
Schreibe einen Kommentar