jfinal+finereport起冲突

        FineReport嵌到web项目里,需要用到servlet,但是JFinal的web.xml中的filter把servlet都拦截了,导致访问不了ReportServlet,请问怎么解决?

评论区

JFinal

2017-12-07 21:12

配置一个 UrlSkipHandler,跳过那些需要 ReportServlet 接管的 url 即可,看一下 com.jfinal.ext.handler 包下的 UrlSkipHandler,可以适当改造,最后在 configHandler 中这样配置:
me.add(new UrlSkipHandler(...));

mld2024

2017-12-12 17:59

感谢波总,已经解决了,现在用的oracle 数据库,请问生成字典文件时出错流关闭是怎么回事。

JFinal

2017-12-12 18:05

@mld2024 可能是 oracle 驱动的问题,建议单步调试一下

mld2024

2017-12-12 18:20

@JFinal 好的,我试一下,谢谢波总

JFinal

2017-12-12 18:23

@mld2024 如果还是不行的话,单独 new 出来那个生成字典文件的生成器,单独写个 main 方法去生成,我怀疑是 MetaBuilder 中读取了一次 meta 信息,在 DirctionaryGenerator 中再去读的时候 oracle 主动关闭了流,这个在其它数据库中是可以的

JFinal

2017-12-12 18:24

@mld2024 oracle 就是这么喜欢自己搞一套规则,为兼容性造成困扰

mld2024

2017-12-19 08:43

@JFinal 感谢波总,配置了一个handler,可以了

990021266

2020-11-03 23:30

@JFinal 波总 jfinal + finereport9.0
UndertowServer.create(MainConfig.class)
.configWeb( builder -> {
builder.addServlet("ReportServer", "com.fr.web.ReportServlet");
builder.addServletMapping("ReportServer", "/ReportServer/*");
}).start(); }
出现一个问题,第一次访问ReportServer 报错,
[Thread: XNIO-1 task-1]-[ERROR]-[io.undertow.servlet.api.LoggingExceptionHandler.handleThrowable()]: UT005023: Exception handling request to /ReportServer
java.lang.NullPointerException
at com.fr.fs.FSModule.deleteObsoleteJARs(Unknown Source)
at com.fr.fs.FSModule.compatibleUpgrade(Unknown Source)
at com.fr.fs.FSModule.init(Unknown Source)
at com.fr.fs.FSModule.startFinish(Unknown Source)
at com.fr.report.module.EngineModule.start(Unknown Source)
at com.fr.general.ModuleContext.startModule(Unknown Source)
at com.fr.web.BaseServlet.init(Unknown Source)
at com.fr.web.ReportServlet.init(Unknown Source)
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117)
at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:305)
在访问一次就好了,就可以用了,感觉第一次访问,没有加载上servlet,等报错后就加载上了。
请问这是为什么有没有解决方法
如果加上builder.setServletLoadOnStartup("ReportServer", 2);后启动的时候报错,起不来,报错信息一样

JFinal

2020-11-04 09:36

NullPointerException 这个异常,单步调试一下,定位是哪个对象为 null 引起的

990021266

2020-11-09 20:49

@JFinal 波总,只有在第一次进入finereport的时候报错,在请求一次就好了,由于finereport是商业,没法看到代码,单步调试,没有发现问题,现在头绪有点茫然了。
我是定义了一个Handlers,里面加入判断用户登录没有。用UrlSkipHandler也是报错。还望波总指点

JFinal

2020-11-09 21:26

@990021266 如果实在找不到原因,可以事先用程序触发一次请求,让异常先抛出来。然后在用户真正请求到来的时候就没有问题了

热门反馈

扫码入社