Notes Designer v12 XPages报Access restriction错误如何解决
HCL Domino v12 打开NSF数据库报UISelect2PickerCombo访问限制错误解决方案
报错根因
该报错不属于代码运行时错误,是HCL Domino Designer v12内置的Eclipse环境对插件非公共API的访问校验规则远严于v9版本:你使用的2014版org.openntf.xsp.bootstrap插件中,UISelect2PickerCombo()构造器未标记为公开API,v9环境默认不拦截这类调用,v12默认将其判定为编译级错误。
你之前尝试的调整JDK编译合规等级、添加目标平台文件夹操作不生效的原因是:这两项操作均不涉及Eclipse插件访问规则的校验逻辑,也没有替换不兼容的旧版插件。
可行解决方案(按操作成本从低到高排序)
方案1:调整单项目访问限制规则(无代码改动,5分钟可解决)
- 在Designer中右键点击报错的NSF数据库,选择
Properties - 左侧导航栏依次进入
Java Compiler>Errors/Warnings - 展开
Deprecated and restricted API配置组 - 将
Forbidden reference (access rules)的校验级别从默认的Error修改为Warning或Ignore - 点击
Apply and Close,等待数据库自动重新构建即可,该修改仅关闭编译期的非API拦截,不影响数据库实际运行逻辑
提示:不要修改全局工作区的编译规则,仅对当前报错的NSF做配置即可,避免影响其他正常项目。
- 在Designer中右键点击报错的NSF数据库,选择
方案2:升级适配v12的OpenNTF Bootstrap插件(长期稳定方案)
当前引用的org.openntf.xsp.bootstrap_1.0.0.201407020945.jar版本过旧,未做v12版本适配:- 卸载Designer中安装的旧版OpenNTF XPages Bootstrap扩展库
- 安装适配Domino v12的最新版OpenNTF Bootstrap插件
- 重启Designer后刷新数据库的XSP构建路径,报错会自动消除
如果是数据库内直接内嵌了旧版插件jar,直接替换为v12兼容版本即可,无需修改业务代码。
方案3:调整代码调用逻辑(适合环境限制无法改配置/装插件的场景)
报错位置为CcCabecera.java第251行直接调用了非公开构造器实例化组件,可改为调用公开API实现相同功能:- 定位到对应行的
new UISelect2PickerCombo()代码 - 替换为插件公开的组件工厂方法创建实例,或改用公开的包装类实现Select2下拉选择的相同逻辑
- 保存后触发重新构建即可消除报错,该方式跨版本兼容性最好。
- 定位到对应行的
内容的提问来源于stack exchange,提问作者fheras
相关产品推荐
相关产品推荐

