环境
Kuboard+k3s,gitlab+CI/CD+nexus
问题一
本地调试正常,发布到生产出现classNotFound

com.magus.jdbc.jar引用方式
1、采用将com.magus.jdbc.jar包放在lib下

2、pom.xml增加依赖
<dependency>
<groupId>com.magus</groupId>
<artifactId>jdbc</artifactId>
<version>5.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/magus-jdbc-5.0.0-modified.jar</systemPath>
</dependency>
<build>
<resources>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
问题排查
1、查看打包的jar是否包含com.magus.jdbc.jar
2、进入kuboard容器bash,解压jar查看
解决方式
将jar上传maven私服
pom.xml增加依赖
<dependency>
<groupId>com.magus</groupId>
<artifactId>jdbc</artifactId>
<version>5.0.0.modified</version>
</dependency>
问题二
问题描述
容器中麦杰驱动找不到so库,调用JNI报错,缺少libnsl.so.1文件,Error loading shared library libnsl.so.1: No such file or directory

解决方式
1、因为采用容器部署服务,所以不能直接在容器安装
2、配置dockerfile,使每次运行时安装
3、dockerfile增加
RUN apk add libnsl
4、重新发布测试,问题依旧
5、排查发现apk现在只有2.0版本的libnsl了,麦杰还用的是1
6、修改dockerfile
RUN apk add libnsl \
&& cd /usr/lib/ \
&& ln -s libnsl.so.2.0.1 libnsl.so.1
7、问题解决
问题三
问题描述
调用JNI报错,容器缺少libstdc++.so.6文件,Error loading shared library libstdc++.so.6: No such file or directory


解决方式
1、同问题一修改dockerfile
RUN apk add libnsl libstdc++ \
&& cd /usr/lib/ \
&& ln -s libnsl.so.2.0.1 libnsl.so.1



3677

被折叠的 条评论
为什么被折叠?



