如何排查启动依赖错误的问题

场景

启动的时候可能会出现以下错误提示

  • 启动模块中包含jar包或者数据库中不存在的模块
  • 启动模块中包含不存在的模块
  • 启动模块互斥模块中包含已安装模块

排查项

  1. 确保启动工程的application.yml中的启动模块pamirs.boot.modules配置项内的模块在pom.xml内依赖了对应模块的jar包
    如何排查启动依赖错误的问题

  2. 确保出问题的模块的定义文件内的包扫描前缀packagePrefix方法内的路径定义正确,该路径可以是多个,但是一定要包含模块下所有子工程的路径,包括但不限于api子工程、core工程等,另外该路径也不能和其他模块的配置有重复、交集、包含关系(例如:a模块是 aa.bb.cc, b模块是aa.bb,这样b模块的路径就包含了a模块的)
    如何排查启动依赖错误的问题

  3. 启动类里spring自带的@ComponentScan.basePackages注解项需要包含所有依赖模块的路径
    如何排查启动依赖错误的问题

  4. 无代码应用创建的时候,配置了依赖模块。但这个依赖没有被本地安装,该模块就会出问题,要么删除该依赖,要么在代码里添加该依赖。

Oinone社区 作者:nation原创文章,如若转载,请注明出处:https://doc.oinone.top/install/backendinstall/14824.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
nation的头像nation数式员工
上一篇 2024年7月17日 pm6:12
下一篇 2024年7月19日 pm12:23

相关推荐

  • 常见权限问题

    一、系统权限操作手册配置 https://doc.oinone.top/chan-pin-shi-yong-shou-ce/17797.html 二、常见权限问题分析及解决 1.函数如何跳过权限拦截https://doc.oinone.top/wen-ti-zhen-duan/16299.html 2.工作流工作台无权限排查路径https://doc.oinone.top/wen-ti-zhen-duan/15924.html 3.windows环境npm安装依赖提示无权限https://doc.oinone.top/faq/14590.html 4.权限异常排查路径参考https://doc.oinone.top/faq/14391.html 5.自定义RSQL占位符(placeholder)及在权限中使用https://doc.oinone.top/backend/6393.html 6.自定义数据权限拦截处理https://doc.oinone.top/backend/4737.html 7.如何扩展行为权限https://doc.oinone.top/dai-ma-shi-jian/18976.html 8.跳转动作无权限问题排查https://doc.oinone.top/wen-ti-zhen-duan/18678.html

    2024年10月23日
    49100
  • Oinone 是什么

    1.Oinone能做什么? Oinone 是一款专注解决复杂业务场景的开源低代码应用平台,旨在提供所见即所得的快速可视化搭建应用功能,并打造企业专属的低代码平台。 提升交付效率,缩短交付周期; 减少人力投入,解决技术人才招聘难的难题; 减少接联调,减少重复建设,解决质量管控难题; 一键轻松安装,应用全生命周期管理,解决应用管理难题; 2.为什么要用Oinone? 用Oinone低代码平台可以帮助企业应对竞争变化、适应业务变化、满足技术需求、提高研发效率,并且低代码平台已经成为企业数字化转型的核心工具之一。 企业竞争变化,从单一企业变相兼职链的网络竞争; 业务变化,从信息化时代,内部/管理/流程、结果,变向数字时代,外部/商业,运营; 技术更替,从主球稳定,安全,功能丰富可配置到系统性能极限承载能力与弹性扩容/随需而变,需求响应速度、智能;化、实时分析,数据与业务的联动,用户体验,B端的业务需求C端的体验; 对研发人员的需求越来越大,同时要求越来越高。低代码平台是提升研发效率,降低研发成本核心手段; 低代码的地位已经从辅助走向核心; 3.Oinone 和其他的无代码平台相比优势是什么 既支持无代码的拖拉拽,还能通过研发框架支持自主工程研发; 低代码和无代码在贯彻了整个软件的生命周期,在不同场景发挥不同价值; 可基于软件工程理论,进行科学管理; 不改变研发习惯,主流开源技术栈,无抵触心理 4.我是软件公司,用不用Oinone? 软件公司非常适合使用 Oinone,不管你是做标品还是定制项目,都非常适合使用Oinone 低代码:构建软件快速开发标准,让研发专注在业务创新本身 快速实施个性化需求、或开发简单和应急应用 5.我们公司产品迭代很快,用不用Oinone? 无代码:使用Oinone 可以快速的响应需求,以及后续迭代需求; 集成平台:快速的是实施集成方案,一次配置,终身受用; 低代码:降低技术复杂度,提升研发效率,让研发专注于业务本身; 6.我们公司产品bug很多,用不用Oinone? 很多公司都有这样的痛点,一直有BUG ,反复修反复出现,重构成本非常大,比如项目预算有限,无法支撑重新构建,技术栈老旧,研发人员比较少,Oinone 提供以下解决方案: 同步原系统数据回流处理后数据; 原系统数据扩展处理新业务逻辑; 7..我用的是JAVA 技术栈,我还需要用Oinone么? 在探讨低代码平台的合作时,首先需要确认的是,如果您之前使用的是Java技术栈,那么低代码平台是否能够生成相应的Java代码,包括常用的增删改查等方法。这种代码生成器与低代码平台的第一种方式——代码生成器相似,它提供了基础逻辑的生成。 针对这一层面,Oinone平台具有几个显著优势。首先,后端定义的模型或写法不仅决定了后端的数据处理,同时也影响了前端的UI展示层。其次,当前端开发时加入特定的注解,这些注解的本质是为了收集原始数据。一旦数据源被定义,编写的代码在最终运行时实际上已经转变为数据。这是与传统代码编写方式的第二个不同点。第三,尽管我们提供了代码编写的方式,但这样做的核心目的在于解决标准化产品与个性化需求之间的矛盾。在进行功能扩展时,对于工程架构和代码编写的冲击较大。 oinone的核心优势在于减少代码生成量,内置代码规范,并实现前后端无需联调。此外,无代码设计器能够理解用代码构建的模型或函数,并与之结合。 在前端方面,低代码平台也提供了相应的工程结构,允许通过添加平台依赖来引入平台功能。前端的自定义能力包括自定义模板、布局和页面,以及完全自定义视图的能力。此外,平台支持前端与后端的交互自定义,以及自定义字段的引入。 总结来说,后端定义的模型不仅决定了数据存储结构和扩展方式,还决定了前端的UI展示,并能与无代码平台结合。引入TypeScript(TS)的概念,可以帮助团队最大化逻辑复用,解决了业务组件难以沉淀的问题。通过这种方式,前后端的结合更为紧密,减少了联调的需求,提高了开发效率。

    2022年3月14日
    99500
  • 密码输入正确登录仍失败

    问题现象 密码输入正确登录仍失败,后端有报错日志,会出现关键字:InvalidKeyException: Illegal key size 密码解密失败原因排查 异常日志 2022-07-15 13:58:58.439 INFO 17064 — [0.0-8090-exec-5] p.s.pamirs.user.api.utils.AES256Utils : java.security.InvalidKeyException: Illegal key size at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039) ~[na:1.8.0_121] at javax.crypto.Cipher.implInit(Cipher.java:805) ~[na:1.8.0_121] at javax.crypto.Cipher.chooseProvider(Cipher.java:864) ~[na:1.8.0_121] at javax.crypto.Cipher.init(Cipher.java:1396) ~[na:1.8.0_121] at javax.crypto.Cipher.init(Cipher.java:1327) ~[na:1.8.0_121] at pro.shushi.pamirs.user.api.utils.AES256Utils.decrypt(AES256Utils.java:93) ~[pamirs-user-api-3.0.1-20220715.032940-5.jar:na] at pro.shushi.pamirs.user.api.crypto.DecryptAspect.decryptObj(DecryptAspect.java:81) [pamirs-user-api-3.0.1-20220715.032940-5.jar:na] at pro.shushi.pamirs.user.api.crypto.DecryptAspect.decryptData(DecryptAspect.java:62) [pamirs-user-api-3.0.1-20220715.032940-5.jar:na] at pro.shushi.pamirs.user.api.crypto.DecryptAspect.decrypt(DecryptAspect.java:44) [pamirs-user-api-3.0.1-20220715.032940-5.jar:na] 异常原因:如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制.参考资料:https://www.cnblogs.com/jinloooong/p/10619353.html 解法办法 1、请检查jdk版本是否高于1.8_221以上。 2、如无法升级jdk版本的环境下,下载JCE无限制权限策略文件。请点击下载 jce_policy-8.zip 并按照如下步骤进行操作: 解压jce_policy-8.zip,得到两个文件US_export_policy.jar和local_policy.jar 如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件 如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

    2024年5月17日
    96700
  • 自定义表达式函数

    由于表达式内的函数在前后端都可能执行,所以同一个表达式需要前后端同时定义 后端表达式自定义 package pro.shushi.pamirs.demo.core.fun; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import pro.shushi.pamirs.meta.annotation.Fun; import pro.shushi.pamirs.meta.annotation.Function; import pro.shushi.pamirs.meta.common.constants.NamespaceConstants; import java.util.Date; import java.util.List; import static pro.shushi.pamirs.meta.enmu.FunctionCategoryEnum.TEXT; import static pro.shushi.pamirs.meta.enmu.FunctionCategoryEnum.TIME; import static pro.shushi.pamirs.meta.enmu.FunctionLanguageEnum.JAVA; import static pro.shushi.pamirs.meta.enmu.FunctionOpenEnum.LOCAL; import static pro.shushi.pamirs.meta.enmu.FunctionSceneEnum.EXPRESSION; /** * 自定义函数 */ @Fun(NamespaceConstants.expression) public class DemoCustomFunctions { @Function.Advanced( displayName = "逗号分隔字符串数组", language = JAVA, builtin = true, category = TEXT ) @Function.fun("MY_COMMA") @Function(name = "MY_COMMA", scene = {EXPRESSION}, openLevel = LOCAL, summary = "函数示例: MY_COMMA(list)\n函数说明: 将字符串数组转为逗号分隔的字符串" ) public String myComma(List<String> list) { return StringUtils.join(list, ","); } @Function.Advanced( displayName = "根据出生算年龄", language = JAVA, builtin = true, category = TIME ) @Function.fun("CALC_AGE") @Function(name = "CALC_AGE", scene = {EXPRESSION}, openLevel = LOCAL, summary = "函数示例: CALC_AGE(birthDate)\n函数说明: 根据出生算年龄" ) public Integer calcAge(Date birthDate) { if (birthDate == null) { return 0; } return new DateTime().getYear() – new DateTime(birthDate).getYear(); } } 前端表达式定义 定义后导入到main.ts里,导入@kunlun/dependencies的代码之后 import { Expression } from '@kunlun/dependencies'; import dayjs from 'dayjs'; Expression.getInstance().registerFunction('MY_COMMA', ['array'], (list: string[]) => { return (list || []) .map((value) => { return `'${value}'`; }) .join(','); }); Expression.getInstance().registerFunction('CALC_AGE', ['string'], (birthDate: string) => { if (birthDate == null) { return 0; } return Math.ceil(dayjs().year() – dayjs(birthDate,…

    2024年7月10日
    1.7K00
  • 常见启动问题

    一、配置问题: 1.证书问题,如过期、路径等。排查文档:https://doc.oinone.top/install/backendinstall/13760.html2.模型中关系字段配置问题。排查文档:https://doc.oinone.top/wen-ti-zhen-duan/15999.html3.跨模块依赖诸多问题。排查文档:https://doc.oinone.top/install/backendinstall/14824.html4.代码问题。如枚举类忘记添加类注解等 二、 环境问题: 1.版本问题。同base库的多个环境版本不一致,从而引发系列问题,如数据表重复新增删除。2.数据表唯一键冲突。 三、场景启动问题分析及解决方案 1.后端启动慢如何排查https://doc.oinone.top/faq/16613.html 2.验证服务是否启动成功https://doc.oinone.top/oinone-faq/17905.html 3.启动时提示未配置SQL记录存储目录,然后启动失败报错https://doc.oinone.top/faq/17048.html 4.启动报错,公共环境开启了元数据保护模式,本地开发环境需配置https://doc.oinone.top/faq/17045.html 5.在docker容器里启动,路径配置正确,仍旧报错https://doc.oinone.top/faq/17040.html 6.容器启动服务,License认证报错https://doc.oinone.top/faq/17039.html 7.系统启动耗时过长,内存耗用过大https://doc.oinone.top/faq/6659.html 8.启动提示:依赖的模块不存在https://doc.oinone.top/faq/6630.html 9.协同模式下,本地开发的模型在设计器里找不到https://doc.oinone.top/faq/17110.html 10.测试服务访问测试服务里docker容器的设计器服务接口,报dubbo接口不存在https://doc.oinone.top/faq/17055.html

    2024年10月23日
    48500

Leave a Reply

登录后才能评论