Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java REST-Jersey-Exception获取参数_Java_Rest_Jersey - Fatal编程技术网

Java REST-Jersey-Exception获取参数

Java REST-Jersey-Exception获取参数,java,rest,jersey,Java,Rest,Jersey,以下是我的ajax调用: uploadExcel : function(jsonData,success, error) { var url = "/TestProject/test/Uploader; $.ajaxFileUpload({ url : url, secureuri : false, fileElementId : 'FileUpload', contentType : 'multipart/for

以下是我的ajax调用:

uploadExcel : function(jsonData,success, error) {
    var url = "/TestProject/test/Uploader;
    $.ajaxFileUpload({ 
        url : url,
        secureuri : false,
        fileElementId : 'FileUpload',
        contentType : 'multipart/form-data',
        dataType : 'jsonString',
        processData : false,
        type : 'POST',
        data: jsonData,
        success : success,
        error : error
    });
}
Java方法签名:

@Path("/Uploader") 
@POST
@Consumes('multipart/form-data')
public String validateAndUpload(@FormDataParam("FileUpload") byte[] inputByteArray, 
                                @Context HttpServletRequest request,
                                @FormParam("jsonData") String uploadData) {}
这是我得到的错误

以下是stackTrace:

    SEVERE: Servlet.service() for servlet [ServletAdaptor] in context with path    [/TestProject] threw exception [com.sun.jersey.api.container.ContainerException: Exception obtaining parameters] with root cause
java.lang.NullPointerException
at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:43)
at com.sun.jersey.multipart.impl.FormDataMultiPartDispatchProvider$FormDataInjectableValuesProvider.getInjectableValues(FormDataMultiPartDispatchProvider.java:115)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:126)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:154)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:163)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:71)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
尝试:

而不是:

@FormDataParam("FileUpload") byte[] inputByteArray
根据,支持以下内容:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA_TYPE)
public String postForm(
        @DefaultValue("true") @FormDataParam("enabled") boolean enabled,
        @FormDataParam("data") FileData bean,
        @FormDataParam("file") InputStream file,
        @FormDataParam("file") FormDataContentDisposition fileDisposition) {
    ...
}
从:

其中,服务器使用一个
多部分/表单数据
请求实体体,该实体体包含一个可选的命名实体部分“已启用”和两个必需的命名实体部分
数据
文件

可选部件
已启用
作为
布尔值处理,如果该部件不存在,则该值为真

部分
data
作为jaxbbean处理,并包含一些关于以下部分的元数据

零件
文件
是上载的文件,它作为
输入流
处理。可通过参数
fileDisposition
访问
内容处置
标题中有关文件的其他信息


更新了我的答案。请看一看它是否有用。发现了问题…我注释掉了
@FormParam(“jsonData”)字符串uploadData
,它通过了…我将尝试看看它有什么问题
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA_TYPE)
public String postForm(
        @DefaultValue("true") @FormDataParam("enabled") boolean enabled,
        @FormDataParam("data") FileData bean,
        @FormDataParam("file") InputStream file,
        @FormDataParam("file") FormDataContentDisposition fileDisposition) {
    ...
}