Oinone License 许可证使用常见问题

如何获取许可证?

联系数式运维人员获取许可证。(以下内容全部使用表示许可证文件路径)

  • subject:授权主体名称
  • license.lic:许可证文件

不同许可证类别有什么不同?

许可证类型 LicenseType 限制功能 适用环境
研发授权 DEVELOP 1.每次安装时效1天,超时后无法正常访问设计器相关功能
2.限制CPU和主板序列号或限制许可证使用人数
3.不能用于容器启动
4.有页面水印
开发环境(开发人员本地启动业务工程时使用该授权)
伙伴授权 TRIAL 1.无安装时效限制
2.无部署环境限制
3.有页面水印
非生产环境(测试环境、预发环境等使用该授权)
客户授权 BUSINESS 1.无安装时效限制
2.仅能部署一套生产环境
3.无页面水印
生产环境

PS: 一套环境是指共用Base库的所有JVM称为一套环境。

如何配置许可证?

yaml中配置许可证

单个许可证配置
pamirs:
  license:
    subject: <subject>
    path: <license.lic>
多个许可证配置
pamirs:
  license:
    subject: <subject>
    path:
      - <license1.lic>
      - <license2.lic>

pamirs.license.path可以是相对路径、绝对路径以及URL路径。

Program Arguments中配置许可证

java -jar -Psubject=<subject> -Plicense=<license1.lic> -Plicense=<license1.lic> <boot.jar>

如何在开发中安装许可证?

将许可证放入后端运行时工作目录中即可。(一般为idea项目根目录)

如何在物理机生产环境安装许可证?

将许可证放入与jar包平级目录中即可。

如何在docker环境中安装许可证?

在docker运行时目录添加挂载卷映射,并在yaml中配置对应的路径即可。

如何获取CPU序列号和主板序列号

在Linux环境中使用dmidecode命令

# 获取CPU序列号
dmidecode -s system-serial-number

# CPU序列号
7*****1

# 获取主板序列号
dmidecode -s baseboard-serial-number

# 主板序列号
..CN*******V01Y7.

# 获取系统UUID
dmidecode -s system-uuid

# 系统UUID
4c4xxxxx-xxxx-xxxx-xxxx-xxxxxxxx5831

在Mac环境中使用system_profiler命令

# 获取CPU序列号
system_profiler SPHardwareDataType | grep 'Serial Number' | awk -F ':' '{print $2}'

# CPU序列号
C02******03Y

# 获取主板序列号
system_profiler SPHardwareDataType | grep 'Hardware UUID' | awk -F ':' '{print $2}'

# 主板序列号
1AAxxxxx-xxxx-xxxx-xxxx-xxxxxxxxF0FC

在Windows环境中使用wmic命令

# 获取CPU序列号
wmic cpu get processorid

# CPU序列号
BFExxxxxxxxxx6A3

# 获取主板序列号
wmic baseboard get serialnumber

# 主板序列号
PFxxxxBY

# 获取系统UUID
wmic csproduct get uuid

# 系统UUID
D0Exxxxx-xxxx-xxxx-xxxx-xxxxxxxx78B8

在Linux环境出现dmidecode命令执行失败该如何处理?

1. 命令未找到,可使用如下方式尝试安装

# debian (eg: Ubuntu)
apt-get install dmidecode

# rpm (eg: Fedora/CentOS/RedHat)
yum install dmidecode

2. 无权限执行命令,尝试切换当前执行用户或为当前用户提高执行权限

在docker环境出现证书安装失败该如何处理?

1. 由于docke环境非物理环境,不支持CPU序列号和主板序列号校验,尝试更换许可证。

2. 检查许可证在镜像中的位置是否与配置文件中一致。

许可证安装失败该如何处理?

1. 日志出现License installation failed.信息

PS:对JDK版本依赖的问题已在5.0.0版本以上得到完整解决,此问题仅会出现在低版本的平台版本中。

请检查jdk版本是否高于1.8_221以上。

如无法升级jdk版本的环境下,请点击下载 jce_policy-8.zip 并按照如下步骤进行操作:

  • 解压jce_policy-8.zip,得到两个文件US_export_policy.jarlocal_policy.jar
  • 如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
  • 如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

2. 启动过程中出现Spring上下文被关闭

请检查启动日志中pamirs-lic关键字的相关日志输出,如有许可证相关异常提示,请根据许可证规则确认是否正确使用相应许可证。

许可证安装成功,但访问出现【未经许可授权模块无法访问】该如何处理?

1. 检查启动时许可证信息

  • nohup java -jar boot.jar > $home/out.log 2>&1 &启动的服务需通过查看out.log文件查看许可证信息。
  • docker启动的服务需通过docker logs查看许可证信息。
  • kubernetes启动的服务需通过kubectl logs查看许可证信息。

image.png

  • 检查Type是否为所需类型。一般用于设计器启动的许可证为TRIAL
  • 检查Modules是否为ALL模块编码ALL表示所有设计器模块。

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

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

(1)
张博昊的头像张博昊数式管理员
上一篇 2024年6月18日 pm9:04
下一篇 2024年6月20日 am12:28

相关推荐

  • 如何配置文件存储地址为相对路径

    介绍 大部分情况下,文件存储的配置都会配置uploadUrl和downloadUrl的值,这样图片和文件类型的业务字段会存储带域名的全路径文件地址,但是有些场景需要用户在专有内网的时候访问内网的文件存储地址,用户在公网的时候通过公网访问(一般情况下这个公网ip内部最后还是会转发到内网)文件存储地址,这个时候就要求存在数据库字段里的不能是全路径的地址,只能是想相对路径,这个时候可以通过前端访问的域名用nginx转发当前域名下的文件请求到所匹配环境的ip内的文件存储服务。 配置参考 cdn: oss: name: 本地文件NG系统 type: LOCAL bucket: pamirs # 此处可以不配置值,也可以配置相对路径前缀方便做转发 uploadUrl: downloadUrl: validTime: 3600000 timeout: 600000 active: true referer: localFolderUrl: /test/static 文件上传的路径同步配置nginx转发 location ~ /file/upload { // 此处配置为后端服务的ip+端口 proxy_pass http://127.0.0.1:8190; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } excel导入场景相对路径在后端代码内无法保存导入的文件 在导入任务的前置hook处理相对文件路径的前缀 package pro.shushi.pamirs.demo.core.hook; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; import pro.shushi.pamirs.file.api.FileModule; import pro.shushi.pamirs.file.api.model.ExcelImportTask; import pro.shushi.pamirs.meta.annotation.Hook; import pro.shushi.pamirs.meta.api.core.faas.HookBefore; import pro.shushi.pamirs.meta.api.dto.fun.Function; @Component public class DemoExcelImportTaskActionHookBefore implements HookBefore { // 内网访问文件的地址 public static final String INNER_HOST = "http://127.0.0.1:6800"; @Override @Hook(module = {FileModule.MODULE_MODULE}, model = {ExcelImportTask.MODEL_MODEL}, fun = {"createImportTask"}) public Object run(Function function, Object… args) { if (args.length > 0) { ExcelImportTask excelImportTask = (ExcelImportTask) args[0]; if (excelImportTask != null && excelImportTask.getFile() != null && StringUtils.isNotBlank(excelImportTask.getFile().getUrl())) { excelImportTask.getFile().setUrl(INNER_HOST + excelImportTask.getFile().getUrl()); } } return null; } } 注意事项 上面的例子为本地文件NG系统的,如果是阿里云oss、7牛云等第三方文件存储服务,downloadUrl可以按上面方案直接配置,uploadUrl还是要按正常配置

    2024年6月21日
    1.7K00
  • 后端初始化工程启动

    在拿到Oinone初始化的后端工程体验时,配置修改点

    2023年11月3日
    1.5K00
  • 自定义表达式函数

    由于表达式内的函数在前后端都可能执行,所以同一个表达式需要前后端同时定义 后端表达式自定义 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.9K00
  • 如何解决界面设计器保存提示:元数据不存在或已删除

    现象 界面设计器设计页面的时候,从左侧边栏模型下拖入了一个字段到页面,保存的时候提示:元数据不存在或已删除 原因 共base库不共元数据缓存redis导致的,不共redis的情况下,每次本地新增或修改元数据(如:字段、方法)启动后会同步本地redis,再去线上启动的时候,由于元数据已经在本地写入到了base库,所以该次启动不会触发redis差量更新 解决方案 通过将boot工程application.yml以下配置,让redis全量刷新元数据缓存 pamirs: distribution: session: allMetaRefresh: true 扩展 这个方法只能解决新增或修改元数据,如果出现了删除元数据的话,改为true也不行,清空或者手动删除问题redis的key都可以

    2024年7月21日
    1.1K00
  • 【HighGo】后端部署使用HighGo数据库

    HighGo数据库配置 驱动配置 jdbc仓库 https://mvnrepository.com/artifact/com.highgo/HgdbJdbc Maven配置(6.0.1版本可用) <highgo.version>6.0.1.jre8</highgo.version> <dependency> <groupId>com.highgo</groupId> <artifactId>HgdbJdbc</artifactId> <version>${highgo.version}</version> </dependency> JDBC连接配置 pamirs: datasource: base: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.highgo.jdbc.Driver url: jdbc:highgo://127.0.0.1:5866/oio_base?currentSchema=base,utl_file username: xxxxxx password: xxxxxx initialSize: 5 maxActive: 200 minIdle: 5 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true asyncInit: true 连接url配置 官方文档 https://www.highgo.com/document/zh-cn/application/jdbc.html url格式 jdbc:highgo://ip:端口号/数据库名?currentSchema=schema1,schema2 在jdbc连接配置时,${database}和${schema}必须完整配置,不可缺省。 jdbc指定schema时可以在currentSchema后指定多个schema,中间用,分隔,第一个schema为业务库表存放的主schema。 highgo数据库6.0版本里每个数据库默认会带一个utl_file的schema,该模式与文件访问功能有关,需要带在jdbc的schema中,但不能放在第一个。 其他连接参数如需配置,可自行查阅相关资料进行调优。 方言配置 pamirs方言配置 pamirs: dialect: ds: base: type: HighGoDB version: 6 major-version: 6.0.1 biz_data: type: HighGoDB version: 6 major-version: 6.0.1 数据库版本 type version majorVersion 6.0.x HighGo 6 6.0.1 PS:由于方言开发环境为6.0.1版本,其他类似版本(6.0.x)原则上不会出现太大差异,如出现其他版本无法正常支持的,可在文档下方留言。 schedule方言配置 pamirs: event: enabled: true schedule: enabled: true dialect: type: HighGoDB version: 6 major-version: 6.0.1 其他配置 逻辑删除的值配置 pamirs: mapper: global: table-info: logic-delete-value: (EXTRACT(epoch FROM CURRENT_TIMESTAMP) * 1000000 + EXTRACT(MICROSECONDS FROM CURRENT_TIMESTAMP))::bigint Highgo数据库用户初始化及授权 — init oio_base user (user name can be modified by oneself) CREATE USER oio_base WITH PASSWORD 'Test@12345678'; — if using automatic database and schema creation, this is very important. ALTER USER oio_base CREATEDB; SELECT * FROM pg_roles; — if using highgo database, this authorization is required. GRANT CREATE ON DATABASE highgo TO oio_base;

    2025年7月10日
    39200

Leave a Reply

登录后才能评论