Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 在Angular JS中提取和显示错误消息_Java_Angularjs - Fatal编程技术网

Java 在Angular JS中提取和显示错误消息

Java 在Angular JS中提取和显示错误消息,java,angularjs,Java,Angularjs,在Angular JS web app中,如果我的rest API返回异常(未处理的抛出),我如何向前端显示相应的错误 目前,我只能显示一般错误“error creating record.”,但无法从异常中检索准确的错误消息 控制器 $http.post("/mdmservice/services/entity", $scope.entity).success(function(data, status, headers, config, statusText) { $

在Angular JS web app中,如果我的rest API返回异常(未处理的抛出),我如何向前端显示相应的错误

目前,我只能显示一般错误“error creating record.”,但无法从异常中检索准确的错误消息

控制器

    $http.post("/mdmservice/services/entity", $scope.entity).success(function(data, status, headers, config, statusText) {
        $scope.created=true;
        $scope.buttonsDisabled = true;          
        $scope.entityCreatedMessage = "New record created successfully.";
        $scope.error=false;
    }).error(function(data, status, headers, config, statusText ) {
        console.log("Error creating entity : " +data +"," +status +"," +headers +"," +config +"," +statusText);
        $scope.error=true;
        $scope.errorMessage="Error creating record.";
    });
RESTAPI

    @POST
@Path(value = "/create")
@Consumes(value = MediaType.APPLICATION_JSON)
@Override
public Long create(Eentity entity) {
    Long entityId = null;
    entity.setEntityId(null);
    entity.setIsExcluded("N");
    try {
        // For create, the editIndicator=1
        entityId = entityBusiness.createOrUpdate(entity, 1);
    } catch (Exception e) {
        throw new WebApplicationException(e);
    }
    return entityId;
}
异常日志

Caused by: com.jay.MyException: Entity code must be unique
        at com.jay.BusinessImpl.createOrUpdateEntity(EntityBusinessImpl.java:93)
        at com.jay.service.impl.EntityServiceImpl.createEntity(EntityServiceImpl.java:145)
        ... 38 more
Caused by: com.jay.common.exception.EbaDataException: Entity code must be unique
        at com.jay.mdm.data.repository.jdbc.impl.EntityRepositoryJdbcImpl.createOrUpdateEntity(EntityRepositoryJdbcImpl.java:304)
        at com.jay.mdm.business.impl.EntityBusinessImpl.createOrUpdateEntity(EntityBusinessImpl.java:91)
        ... 39 more

<Dec 10, 2015 4:08:54 PM GMT> <Warning> <org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper> <BEA-000000> <javax.ws.rs.WebApplicationException: H
TTP 500 Internal Server Error       
原因:com.jay.MyException:实体代码必须唯一
在com.jay.BusinessImpl.createOrUpdateEntity(EntityBusinessImpl.java:93)上
位于com.jay.service.impl.EntityServiceImpl.createEntity(EntityServiceImpl.java:145)
... 38多
原因:com.jay.common.exception.EbaDataException:实体代码必须唯一
位于com.jay.mdm.data.repository.jdbc.impl.EntityRepositoryJdbcImpl.createOrUpdateEntity(EntityRepositoryJdbcImpl.java:304)
位于com.jay.mdm.business.impl.EntityBusinessImpl.createOrUpdateEntity(EntityBusinessImpl.java:91)
... 39多

您可以将错误对象绑定到控制器,并将其绑定到视图以显示异常的内容,如:

$http.post("/mdmservice/services/entity", $scope.entity).success(function(data, status, headers, config, statusText) {
    $scope.created=true;
    $scope.buttonsDisabled = true;          
    $scope.entityCreatedMessage = "New record created successfully.";
    $scope.error=false;
}).error(function(data, status, headers, config, statusText ) {
    console.log("Error creating entity : " +data +"," +status +"," +headers +"," +config +"," +statusText);
    $scope.error = data;
});
在你看来:

Status : {{error.statusCode}}
Label : {{error.error}}

下面是一个示例:

使用某个HTTP资源测试仪测试API端点可能会有所帮助,并查看堆栈跟踪中的错误消息是否出现在响应中的任何位置。

您可以通过
数据
访问服务器响应以获得
成功
错误
<代码>$scope.entityCreatedMessage=数据@user3632710谢谢,但错误消息作为异常抛出,无法在控制器中获取这些消息。你的意思是我们永远不会抛出异常,而是捕获异常并在返回的对象中返回消息吗?我经常使用express而不是java,所以我真的帮不了你。也许这个问题和你的有关?谢谢。问题是如何从异常stacktrace获取错误消息到控制器。。。。在错误块中,我尝试console.log所有这些参数…但无法获取错误消息。错误(函数(数据、状态、标题、配置、状态文本){您想在客户端检索Java stacktrace吗?在这种情况下,您必须配置服务器并让他在响应中插入stacktrace。有时,可以通过将服务器切换到开发模式来实现。然后您将能够解析返回的HTML并将其注入控制器。谢谢。没有异常错误消息未出现在响应中。这是一个抛出的未处理异常。如果它未出现在响应中,则客户端或客户端无法获取它。请找到一种方法将堆栈跟踪异常包括在响应中。很可能,您必须更改后端/服务器端代码或配置。