记录麦杰openPlant生产发布问题

环境

        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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值