fineReport本地预览成功,本地决策系统运行成功,但是远程服务器中的决策系统运行失败!

同一份报表本地点击预览可以打开

image.png

本地决策系统也可以成功打开

image.png

但是远程的系统无法打开

image.png

报表是通过数据库存储过程实现的。百度说的字符串为空的情况也不存在,因为存储过程已经把未传值的都做了null处理

补充详细信息:

image.png

如今发现一种情况就是,当我的报表换了别人的存储过程,该报表是可以使用的。那么是不是我存储过程的问题?但是如果是我存储过程的问题,为什么又可以在本地正常打开?假设真的是存储过程的问题,那么有可能是哪几方面的问题?

---------------------------

2021-08-09 19:12    更新错误代码信息

java.lang.NullPointerException

at com.fr.base.SynchronizedLiveDataModelUtils.createModelFromSource(Unknown Source)

at com.fr.base.SynchronizedLiveDataModelUtils.getLiveDataModel(Unknown Source)

at com.fr.report.core.sheet.SheetExecutor.__s_name2ResultSet(Unknown Source)

at com.fr.report.core.A.J.A(Unknown Source)

at com.fr.report.core.A.J.dealWithBEDSColumn(Unknown Source)

at com.fr.report.core.A.m.cc_ce_array(Unknown Source)

at com.fr.report.core.A.J.A(Unknown Source)

at com.fr.report.core.A.J.A(Unknown Source)

at com.fr.report.core.A.J.A(Unknown Source)

at com.fr.report.core.A.J.A(Unknown Source)

at com.fr.report.core.A.J.A(Unknown Source)

at com.fr.report.core.A.J.C(Unknown Source)

at com.fr.report.core.A.J.execute4Expand(Unknown Source)

at com.fr.report.core.A.J.execute(Unknown Source)

at com.fr.report.worksheet.WorkSheet.execute(Unknown Source)

at com.fr.report.core.sheet.AbstractWorkBookExecutor._execute(Unknown Source)

at com.fr.report.core.sheet.AbstractWorkBookExecutor.execute(Unknown Source)

at com.fr.main.impl.WorkBook.execute(Unknown Source)

at com.fr.main.impl.WorkBook.execute(Unknown Source)

at com.fr.web.cache.ReportCache.getResultWorkBook(Unknown Source)

at com.fr.stable.PageActor.getResultBookFromCacheIfNeed(Unknown Source)

at com.fr.main.impl.WorkBookTemplateDelegate.execute(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.execute$original$cbDEMdNi(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.execute$original$cbDEMdNi$accessor$vfYt3L7c(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor$auxiliary$roOQrLgW.call(Unknown Source)

at com.fr.intelli.metrics.MonitorInterceptor.intercept(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.execute(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.initBook2Show(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.getWorkBook2Show(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.getResultWorkBook(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.createPageSetChain(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.getReportPage(Unknown Source)

at com.fr.web.core.B.KB.A(Unknown Source)

at com.fr.web.core.B.KB.A(Unknown Source)

at com.fr.web.core.B.CB.A(Unknown Source)

at com.fr.web.core.B.ZA.actionCMD(Unknown Source)

at com.fr.web.core.WebActionsDispatcher.dealForActionCMD(Unknown Source)

at com.fr.web.core.WebActionsDispatcher.dealForActionDefaultCmd(Unknown Source)

at com.fr.web.core.B.$B.process(Unknown Source)

at com.fr.web.core.ReportDispatcher.dealWithOp(Unknown Source)

at com.fr.web.core.ReportDispatcher.dealWeblet(Unknown Source)

at com.fr.web.core.ReportDispatcher.dealWithRequest(Unknown Source)

at com.fr.web.controller.BaseRequestService.preview(Unknown Source)

at com.fr.web.controller.ReportRequestService.preview(Unknown Source)

at sun.reflect.Generat edMethodAccessor158.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.fr.third.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)

at com.fr.third.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)

at com.fr.third.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)

at com.fr.third.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:747)

at com.fr.third.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:676)

at com.fr.third.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

at com.fr.third.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)

at com.fr.third.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)

at com.fr.third.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)

at com.fr.third.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)

at com.fr.third.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at com.fr.third.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

at com.fr.third.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at com.fr.decision.base.DecisionServletInitializer$4.doFilter(Unknown Source)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)

---------------------------------------

更新测试结果:

  1. 远程库中的存储过程可以由另一个决策系统调用并且打开

  2. 远程决策系统中的报表在换了存储过程之后可以成功使用报表格式

  3. 重写存储过程以及报表后同样提示空指针错误--CreateModelFromSource(unknow source)

FineReport yzm278975 发布于 2021-8-9 16:09 (编辑于 2021-8-10 08:29)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
yzm278975Lv2见习互助
发布于2021-8-10 08:52

问题并不是出于存储过程以及报表,而是在远程服务器中无法找到对应的存储过程。

这是由于数据安全而设置的账套安全问题导致当高权限创建的报表而低权限的人无法查看。

因此开放相对应的报表权限即可!

感谢烟尘老哥和snrtuemc的帮助~

最佳回答
0
snrtuemcLv8专家互助
发布于2021-8-9 16:12

请确保你的设计器和服务器jar包版本,插件,配置都需要保持一致,然后文件放置位置也是一样

  • yzm278975 yzm278975(提问者) jar包版本等的配置都一样
    2021-08-09 16:17 
  • snrtuemc snrtuemc 回复 yzm278975(提问者) 这个范围大,不好查找了,参考下空指针错误-https://help.fanruan.com/finereport/doc-view-386.html
    2021-08-09 16:19 
  • yzm278975 yzm278975(提问者) 上面参考已经看过了。但是由于是存储过程写的报表,而且这个报表和已经在远程挂载使用的其他报表所使用的环境并无不同,所以上面的参考都被排除了
    2021-08-09 16:24 
  • yzm278975 yzm278975(提问者) 已补充全部异常信息
    2021-08-10 08:22 
  • snrtuemc snrtuemc 回复 yzm278975(提问者) 本地和服务器,连接的数据库是同一个吗?是的话,还真看不出。。。
    2021-08-10 08:29 
最佳回答
0
烟尘Lv6高级互助
发布于2021-8-9 16:13(编辑于 2021-8-9 16:13)

看一下详细信息的报错

image.png

  • yzm278975 yzm278975(提问者) 已补充
    2021-08-09 16:16 
  • 烟尘 烟尘 回复 yzm278975(提问者) 存储过程对吧,看一下服务器连接的数据库,存储过程是否有问题
    2021-08-09 16:23 
  • 烟尘 烟尘 回复 yzm278975(提问者) 还有一点,如果数据库是mysql,注释是用#不是--,注意数据集里sql语句是否全部符合数据库的语法
    2021-08-09 16:25 
  • yzm278975 yzm278975(提问者) 回复 烟尘 远程数据库中的存储过程可以运行并且获得数据.
    2021-08-09 16:25 
  • yzm278975 yzm278975(提问者) 回复 烟尘 数据库使用的sql server
    2021-08-09 16:26 
  • 2关注人数
  • 418浏览人数
  • 最后回答于:2021-8-10 08:52
    请选择关闭问题的原因
    确定 取消
    返回顶部