springboot项目部署 国产芯片 碰到的一个问题(sqlite)

Caused by: java.lang.Exception: No native library is found for os.name=Linux and os.arch=aarch64

at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:284)

at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:65)

at org.sqlite.core.NativeDB.load(NativeDB.java:53)

at org.sqlite.core.CoreConnection.open(CoreConnection.java:211)

... 27 common frames omitted

项目使用sqllite作为内置数据库,部署在普通的服务器(x86,arm架构CPU)上没问题,但是部署在国产服务器上使用国产CPU例如:aarch64架构的,龙芯(loongarch64)就报如上报错

看错误信息 No native library found for os.name=Linux, os.arch=loongarch64 是在龙芯系统上找不到,本地library

百度调查,发现是项目依赖的jar包里,不包含龙芯的library,如下图

然后到龙芯的社区里,找到龙芯的maven库,发现他们的库里有sqlite-jdbc的依赖

然后按照说明,修改pom文件, 添加龙芯库

龙芯参照:https://docs.loongnix.cn/maven/introduction.html

复制代码
<repositories>
	<repository>
		<id>loongson</id>
		<name>Loongson Maven</name>
		<url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
		<releases><enabled>true</enabled></releases>
		<snapshots><enabled>true</enabled></snapshots>
	</repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>loongson</id>
        <name>Loongson Maven</name>
        <url>https://maven.loongnix.cn/loongarchabi1/maven/</url>
        <releases><enabled>true</enabled></releases>
        <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>
</pluginRepositories>

修改setting,!loongson 这个的意思 如果 id=loongson里面有这个包 就去loongson里的

复制代码
<mirror>
        <id>central</id>
        <mirrorOf>*,!loongson</mirrorOf>
        <name>Maven Central</name>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
    </mirror>

删掉本的库的jar 然后重新下载。如下图,新的包里就包含loongarch64这个了

终极原因:龙芯用的是国产cpu,指令集也是自己研发的。而sqlite 的java驱动是会调用本地接口,所以需要在龙芯架构下编译一份.so文件。而maven中心库里面的sqlite驱动不包含这个龙芯的版本

相关推荐
码兄科技8 小时前
实战:基于Spring Boot + UniApp的地理信息小程序开发
spring boot·后端·uni-app
腾讯云云开发10 小时前
腾讯云 CloudBase 登上 WAIC:我们为 Agent 重新设计了云的生产线
后端
星栈10 小时前
从装一堆工具到看懂 Node 工程化思维:我的项目复盘记录
后端·node.js
65岁退休Coder10 小时前
LangChain v1.3.4 笔记 - 05 Agent 上下文记忆
后端
颜酱10 小时前
04 | 召回前置准备:搭好召回所需的四个数据库
前端·人工智能·后端
JaneConan10 小时前
鸿蒙 韶非 UI 系列:能力调用 startAbilityForResult,跳能力拿回参,鸿蒙能力路由入门
后端·harmonyos
晴空了无痕10 小时前
从 Go 基础到 K8s:一条可落地的 Go 服务端成长路线
开发语言·后端·golang·kubernetes
用户83562907805110 小时前
如何使用 Python 在 Excel 中添加、编辑和删除超链接
后端·python
花椒技术11 小时前
原本要 2 天的服务端冒烟前置审查,为什么 3 分半就能出报告?|QA 质量交付实践(三)
后端·ai编程·测试
达达尼昂11 小时前
AI 编程的工程化实践:Flutter AI Harness 的设计与落地
人工智能·后端·全栈