Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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控制器中的Url将空ID获取到后端_Java_Angularjs_Spring_Rest - Fatal编程技术网

Java 通过rest控制器中的Url将空ID获取到后端

Java 通过rest控制器中的Url将空ID获取到后端,java,angularjs,spring,rest,Java,Angularjs,Spring,Rest,我正在将ID Null发送到后端,这是从前端传递的参数 this.overAllSummery = function(offset,limit,search,colName,order,id){ var url = 'api/dashboard/summary/' if(offset!= undefined){ url=(url.indexOf("?") > -1)?url+"&offset="+offset:url+"?

我正在将ID Null发送到后端,这是从前端传递的参数

    this.overAllSummery = function(offset,limit,search,colName,order,id){

    var url = 'api/dashboard/summary/'

        if(offset!= undefined){
            url=(url.indexOf("?") > -1)?url+"&offset="+offset:url+"?offset="+offset;
        }
        if(limit != undefined){
            url=(url.indexOf("?") > -1)?url+"&limit="+limit:url+"?limit="+limit;
        }
        if(search!=undefined && search!=""){
            url=(url.indexOf("?") > -1)?url+"&search="+search:url+"?search="+search;
        }
        if(colName != undefined){
            url=(url.indexOf("?") > -1)?url+"&colName="+colName:url+"?colName="+colName;
        }
        if(order != undefined){
            url=(url.indexOf("?") > -1)?url+"&order="+order:url+"?order="+order;

        }
        if(id != undefined){
            url=(url.indexOf("?") > -1)?url+"&id ="+id:url+"?id ="+id;
        }
        alert(id);
        var promise = $http({
            method : 'GET',
            url : url,
            headers : {
                'Content-Type' : 'application/json'
            },
            cache : false
        }).then(function (response) {
            return response;
        });
        return promise;     
    };
以上全部是使用AngularJS和传递URL调用后端的前端服务,因为我传递了不同的参数,所以除了ID之外,我将所有参数都传递到后端,并且基于ID我必须从DB获取记录

    @RequestMapping(value = "/summary", method = RequestMethod.GET, produces="application/json")
public ResponseEntity<List<OverAllSummery>> overAllSummery(HttpServletRequest request,@RequestParam(value="offset",required=false) Integer offset,@RequestParam(value="limit",required=false) Integer limit,
@RequestParam(value="search",required=false) String search,@RequestParam(value="colName",required=false) String colName,@RequestParam(value="order",required=false) String order,
@RequestParam(value="id",required=false) Long id){

try {

    return new ResponseEntity<List<OverAllSummery>>(DashbordService.overAllSummery(offset,limit,search,colName,order,id), HttpStatus.OK);
} catch (Exception exception) {
    logger.error("Error retriving all categories", exception);
    return new ResponseEntity<List<OverAllSummery>>(HttpStatus.INTERNAL_SERVER_ERROR);
}
上面是我使用的rest控制器,在调试模式下调用传递到后端,但ID为null,在前端控制台中得到404

上图中,您可以看到在警报中添加URL后,其中ID=1,但在呼叫转到后端后,该ID变为空

您可以在上面的API中看到该Id

@RequestMappingvalue=dashboard/summary。。。您没有在requestMapping中添加id作为参数

添加{id}@RequestMappingvalue=dashboard/summary/{id}


您在HTTP中调用dashboard/summary/1的api错误404肯定意味着服务器后端不知道您正在尝试访问的url。内部服务器错误,由catch块生成的是HTTP 500,因此后端没有生成异常。因此,首先要检查的是您实际要访问的URL。顺便说一下,尝试使用“/api/dashboard/summary”,而不是现在在前端使用的

删除URL中的多余空间后,请检查。URL中不应包含空格


请在调用Get call to Rest api之前添加Alerturl,以了解到底传递了什么,基于此,我们可能会找出导致问题的原因并找到传递的值。您可以查看问题。我在使用Alert后按照您所说的那样进行了编辑。如果我在请求映射中添加ID,它将不会为URI为[/gdpr/api/dashboard/summary/]的HTTP请求提供任何映射在名为“spring dispatcher”的DispatcherServlet中出现错误,如您前面所述,如果我以/summary/1的形式传递,它将变成硬编码的Id1,即您可以传递的idanything@phanikumar也许你接受API是错误的。您创建了一个api/summary/,在这里调用了api/dashboard/summaryURL,并且一切正常,调用将通过调试转到后端,但在后端ID变为null。实际上,它应该是我通过ID参数传递的值,那么它不是404。我建议在处理程序方法中使用@RequestParamParamParameters。它将显示您传递的参数。例如,如果您使用的是“id”而不是“id”,则可能不会自动映射。完全正确,URL之间不应该有空格。请发布必要的详细信息,以便我们可以帮助您更快地解决问题:@phanikumar