REST/json/Grails HTTP PUT(更新)";“内部服务器错误”;500

REST/json/Grails HTTP PUT(更新)";“内部服务器错误”;500,json,angularjs,rest,grails,Json,Angularjs,Rest,Grails,我测试了一个示例应用程序,一端是REST/json/Grails,一端是Angular,以验证流程。它工作得非常好。所有的HTTPGET、POST、PUT和DELETE都很好 现在,我正在一个成熟的项目管理应用程序中通过REST发出JSON请求。它具有应用程序的基本类结构:关于项目、合同、联系人、项目角色等的类 在通过HTTP PUT(仅限PUT,参数相同的POSt)REST/JSON更新数据库(MySql 5.6 Community,Grails 2.4.3)中的所有记录时,我发现以下错误(在

我测试了一个示例应用程序,一端是REST/json/Grails,一端是Angular,以验证流程。它工作得非常好。所有的HTTPGET、POST、PUT和DELETE都很好

现在,我正在一个成熟的项目管理应用程序中通过REST发出JSON请求。它具有应用程序的基本类结构:关于项目、合同、联系人、项目角色等的类

在通过HTTP PUT(仅限PUT,参数相同的POSt)REST/JSON更新数据库(MySql 5.6 Community,Grails 2.4.3)中的所有记录时,我发现以下错误(在客户端):

===================================================

Error 500: Internal Server Error URI/apaNew/api/v1/projectTasks/3Classjava.lang.NullPointerExceptionMessagenull
Around line 198 of PageFragmentCachingFilter.java 195:  if (CollectionUtils.isEmpty(cacheOperations)) {196:             log.debug("No cacheable annotation found for {}:{} {}",197:                     new Object[] { request.getMethod(), request.getRequestURI(), getContext() });198: chain.doFilter(request, response);199:                return;200:         }201: 

Around line 63 of AbstractFilter.java 60:       try {61:            // NO_FILTER set for RequestDispatcher forwards to avoid double gzipping62: if (filterNotDisabled(request)) {63:                doFilter(request, response, chain);64:          }65:            else {66:               chain.doFilter(req, res);

Around line 82 of CorsFilter.java 79:                }80:            }81:  }82:        filterChain.doFilter(request, response);83:    }84:85:    private boolean checkOrigin(HttpServletRequest req, HttpServletResponse resp) {

Trace 
Line | Method ->>  198 | doFilter  in PageFragmentCachingFilter.java
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|     63 | doFilter  in AbstractFilter.java
|     82 | doFilter  in CorsFilter.java
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker ^    745 | run       in java.lang.Thread
==============================================

Error 500: Internal Server Error URI/apaNew/api/v1/projectTasks/3Classjava.lang.NullPointerExceptionMessagenull
Around line 198 of PageFragmentCachingFilter.java 195:  if (CollectionUtils.isEmpty(cacheOperations)) {196:             log.debug("No cacheable annotation found for {}:{} {}",197:                     new Object[] { request.getMethod(), request.getRequestURI(), getContext() });198: chain.doFilter(request, response);199:                return;200:         }201: 

Around line 63 of AbstractFilter.java 60:       try {61:            // NO_FILTER set for RequestDispatcher forwards to avoid double gzipping62: if (filterNotDisabled(request)) {63:                doFilter(request, response, chain);64:          }65:            else {66:               chain.doFilter(req, res);

Around line 82 of CorsFilter.java 79:                }80:            }81:  }82:        filterChain.doFilter(request, response);83:    }84:85:    private boolean checkOrigin(HttpServletRequest req, HttpServletResponse resp) {

Trace 
Line | Method ->>  198 | doFilter  in PageFragmentCachingFilter.java
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|     63 | doFilter  in AbstractFilter.java
|     82 | doFilter  in CorsFilter.java
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker ^    745 | run       in java.lang.Thread
该应用程序是一个非常简单的项目管理应用程序。它有一个项目类,我正试图修改它的记录

在我之前编写的一个示例应用程序中,它运行得非常好,可以测试所有内容。只有在将其转换为成熟的应用程序后,问题才浮出水面


HTTP POST/GET/DELETE请求工作正常。具有类似参数的HTTP POST请求工作正常。

尝试禁用缓存插件(grails.cache.enabled=false in Config.grooy)。如果你不打算使用缓存插件,也可以删除它的依赖关系,看看这是否有帮助。尝试直接从浏览器或RESTAPI客户端浏览器插件点击url,然后查看。另外,如果您不想使用跨域ajax,您不需要cors插件,只需将rest api公开给android或其他rest Client.Thx即可。我将致力于上述工作返回报告。@sudhir禁用缓存插件将删除缓存错误。但他“CheckOrigin”错误仍然失败。我正在使用从NetBeans运行的Angular客户端发出的REST/PUT调用。有没有办法禁用cors插件。此外,我将在生产环境中做些什么。它在CorsFilter中的doFilter中给出了一个
NullPointerException。