休息webservice上传中的NullPointerException

时间:2014-06-09 12:03:24

标签: java web-services rest jersey jax-rs

我正在尝试使用rest webservice上传文件。这是我的代码

@Path(value= "/up")
public class upload {

    @POST
    @Path(value="upload")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response uploadFile(@FormDataParam("file") InputStream fileInputStream ) {
        String filePath = "C://Users/Marya/Desktop/file" ;
        System.out.println("*****serverpath********");
        saveFile(fileInputStream, filePath); //this is line 29 
        System.out.println("*****save********");
        String output = "File saved to  server location : " + filePath;
        System.out.println("done");
        return Response.status(200).entity(output).build();
    }

    private void saveFile(InputStream uploadedInputStream,String serverLocation) {
        try {OutputStream outpuStream = new FileOutputStream(new File(serverLocation));
            int read = 0;
            byte[] bytes = new byte[1024];
            outpuStream = new FileOutputStream(new File(serverLocation));
            while ((read = uploadedInputStream.read(bytes)) != -1) //this is lione 42
            {
                outpuStream.write(bytes, 0, read);
                System.out.println("*****read********");
            }
            outpuStream.flush();
            outpuStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

当我运行它时,文件被创建但是它是空的,大小= 0 !! 我收到这个错误:

Grave: "Servlet.service()" pour la servlet JAX-RS Servlet a généré une exception
java.lang.NullPointerException
at com.example.upload.saveFile(upload.java:42)
at com.example.upload.uploadFile(upload.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)

请问有什么建议可以解决这个问题吗?

0 个答案:

没有答案