我有mongodb的jhipster应用程序,我能够成功构建产品版本。当我在Windows中运行prod build war文件时(与我的开发机相同),它可以正常工作。当我将战争部署到linux并尝试访问特定链接时,出现以下异常
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.IncompatibleClassChangeError: Expected static field jdk.nashorn.internal.objects.Global.undefined
com.mastercard.rsc.web.rest.ResultssummaryResource.getAllResultssummariesByBuild(ResultssummaryResource.java:121)
下面是上面的异常指向的代码。我想做的是,如果buildversion不为空,则如果未提供buildversion,则按构建版本获取记录过滤器,然后获取所有记录。在我的请求中,构建版本不为空,我正在传递值CurlVersion,并且匹配的记录在数据库中。
public ResponseEntity<List<ResultssummaryDTO>> getAllResultssummariesByBuild(Pageable pageable,@RequestParam(value = "buildversion", required = false) String buildversion) {
log.debug("REST request to get a page of Resultssummaries by Build Version");
System.out.println(buildversion);
if (buildversion != undefined) {
Page<ResultssummaryDTO> page = resultssummaryService.findByBuildversion(pageable, buildversion);
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/resultssummaries");
return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
}
else {
log.debug("REST request to get a page of Resultssummaries");
Page<ResultssummaryDTO> page = resultssummaryService.findAll(pageable);
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/resultssummaries");
return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
}
}
我认为问题可能出在我检查构建版本的方式上,
if (buildversion != undefined)
但是它如何在Windows中工作(同一个产品构建战争)。另外,当我调试它工作正常。不确定在Linux中运行时为什么会发生此问题。 不知道确定尝试哪种选项完全空白。 您可以帮助解决该问题吗?
答案 0 :(得分:0)
您在Java后端中使用javascript中的undefined
值(使用Nashorn),尝试将buildversion
与null
进行比较,并摆脱了nashorn导入。