【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata
    • XXX cannot be cast to com.fr.plugin.basic.Closeable:插件引擎会修改plugin.xml中描述的类,为其添加Closeable接口辅助热部署。出现这个是由于未能成功的添加接口。可能的原因有两个,逐一排查即可:
      • 引擎默认只处理com.fr.plugin(9.0插件)或com.fr(8.0插件)包下的类,如果plugin.xml中的类不在这个包下,则需要指定<main-package>标签
      • 这个类被上层类加载器加载了,比如有遗留的class或jar包还在报表的classpath下,由于双亲委派机制,会优先从报表中加载,导致插件引擎无法处理这个类。
        • 如果是代码启动的,首先检查插件的编译路径,然后检查是否有报表模块依赖了插件模块(8.0常见的调试方式),如果依赖的话,也会导致报表的classLoader先加载插件类。
    • 其他的XXX初始化插件对象失败:9.0中部分接口有变动,可能造成插件的不兼容,例如:
      • FRContext.getLogger()接口变动:8.0中返回的是FRLogger,9.0返回FRLoggerProvider。如果用8.0打包插件,则在9.0中会报找不到这个方法。修改为FRLogger.getLogger()即可 
    • 在设计器上运行正常,放到tomcat上启动插件时报“监测到插件没有功能点记录,无法运行
      • tomcat启动时,不会加载插件中跟设计器有关的类,也就找不到这个功能点了。
      • 解决办法:把功能点记录放到服务器相关的类上
    • 收费插件在设计器上运行正常,放到tomcat上启动插件发现插件变成免费的了
      • 原因和解决办法同上
  • No labels

1 Comment

  1. Anonymous

    XXX cannot be cast to com.fr.plugin.basic.Closeable  代码需要 实现Closeable接口,就行了。说的都不在点子上……