Grails 包后出现 NoClassDefFoundError
NoClassDefFoundError after grails package
当我在本地环境中 运行 我的 Grails 项目时,一切正常,但是当我使用 grails package
并将其部署到我们的测试服务器时,它无法加载页面,因为它抛出一个 NoClassDefFoundError
这是加载特定页面的代码:
package com.x.scheduledReport
import com.x.Account
import com.x.XUtil
import com.x.ResponseList
import com.x.ScheduledReport
import com.x.UserService
import com.x.scheduledReports.ScheduledReportDeleteAllCommand
import com.x.scheduledReports.ScheduledReportDeleteCommand
import com.x.scheduledReports.ScheduledReportResponse
import com.x.scheduledReports.ScheduledReportUpdateCommand
import com.x.scheduledReports.ScheduledReportsCommand
import grails.transaction.Transactional
import com.x.scheduledreport.ScheduledReportUtil
@Transactional
class ScheduledReportBusinessService {
ScheduledReportService scheduledReportService
UserService userService
def list(Map params) {
if (params.start) {
params.offset = params.start
}
if (params.length) {
params.max = Math.min(params.length ? params.length as Integer : 100, 1000)
}
params.columns = XUtil.getSearchMap(params)
Account account = userService.getAccountForCurrentUser()
def scheduledReports = scheduledReportService.findAllByAccount(params, account)
params.total = scheduledReports.count
List<ScheduledReportResponse> scheduledReportResponseList = ScheduledReportUtil.toScheduledReportResponseList(scheduledReports.list)
new ResponseList(recordsTotal: scheduledReports.count, recordsFiltered: scheduledReports.count,
data: scheduledReportResponseList, draw: params.draw ? params.draw as int : 0)
}
}
这是日志中抛出的错误
ERROR 2018-04-05 14:18:42,242
org.springframework.boot.context.web.ErrorPageFilter - Forwarding to
error page from request [/rest/scheduledreport/list/true] due to
exception [com/x/scheduledreport/ScheduledReportUtil]
java.lang.NoClassDefFoundError:
com/x/scheduledreport/ScheduledReportUtil at
com.x.scheduledReport.ScheduledReportBusinessService.$tt__list(ScheduledReportBusinessService.groovy:33)
at
com.x.scheduledReport.ScheduledReportBusinessService$_list_closure1.doCall(ScheduledReportBusinessService.groovy)
ScheduledReport
的文件夹名称不一致,使所有名称相同解决了这个问题。
当我在本地环境中 运行 我的 Grails 项目时,一切正常,但是当我使用 grails package
并将其部署到我们的测试服务器时,它无法加载页面,因为它抛出一个 NoClassDefFoundError
这是加载特定页面的代码:
package com.x.scheduledReport
import com.x.Account
import com.x.XUtil
import com.x.ResponseList
import com.x.ScheduledReport
import com.x.UserService
import com.x.scheduledReports.ScheduledReportDeleteAllCommand
import com.x.scheduledReports.ScheduledReportDeleteCommand
import com.x.scheduledReports.ScheduledReportResponse
import com.x.scheduledReports.ScheduledReportUpdateCommand
import com.x.scheduledReports.ScheduledReportsCommand
import grails.transaction.Transactional
import com.x.scheduledreport.ScheduledReportUtil
@Transactional
class ScheduledReportBusinessService {
ScheduledReportService scheduledReportService
UserService userService
def list(Map params) {
if (params.start) {
params.offset = params.start
}
if (params.length) {
params.max = Math.min(params.length ? params.length as Integer : 100, 1000)
}
params.columns = XUtil.getSearchMap(params)
Account account = userService.getAccountForCurrentUser()
def scheduledReports = scheduledReportService.findAllByAccount(params, account)
params.total = scheduledReports.count
List<ScheduledReportResponse> scheduledReportResponseList = ScheduledReportUtil.toScheduledReportResponseList(scheduledReports.list)
new ResponseList(recordsTotal: scheduledReports.count, recordsFiltered: scheduledReports.count,
data: scheduledReportResponseList, draw: params.draw ? params.draw as int : 0)
}
}
这是日志中抛出的错误
ERROR 2018-04-05 14:18:42,242 org.springframework.boot.context.web.ErrorPageFilter - Forwarding to error page from request [/rest/scheduledreport/list/true] due to exception [com/x/scheduledreport/ScheduledReportUtil] java.lang.NoClassDefFoundError: com/x/scheduledreport/ScheduledReportUtil at com.x.scheduledReport.ScheduledReportBusinessService.$tt__list(ScheduledReportBusinessService.groovy:33) at com.x.scheduledReport.ScheduledReportBusinessService$_list_closure1.doCall(ScheduledReportBusinessService.groovy)
ScheduledReport
的文件夹名称不一致,使所有名称相同解决了这个问题。