热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SapJCO问题记录及解决办法

一、解决SpringBoot项目使用sapjco依赖jar包的冲突问题1.1背景在我之前的博文《SpringMVCRabbitMQ实战(XML配置rabbit&#

一、解决SpringBoot项目使用sapjco依赖jar包的冲突问题


1.1 背景

在我之前的博文《SpringMVC + RabbitMQ实战(XML配置rabbit,监听多条队列)》提到过使用SpringMVC而不是使用SpringBoot的原因是SpringBoot与sapjco.jar的冲突问题。

It is not allowed to rename or repackage the original archive “sapjco3.jar”

但实际上这个sapjco的问题是可以被解决的。


1.2 解决方法

在IntelliJ IDEA中使用package工具打包SpringBoot项目为jar包
在这里插入图片描述
使用解压工具打开该jar包,进入BOOT-INF/lib文件夹,将sapjco3-3.0.12.jar手动重命名为sapjco3.jar
在这里插入图片描述
把jar包通过XShell传至Linux服务器上,使用java -jar xxx.jar命令运行,便可正常启动SpringBoot项目。
而且不会再出现下述BUG了:

It is not allowed to rename or repackage the original archive “sapjco3.jar”

但新的BUG将会出现,接着往下阅读。


二、解决Linux中的java库中没有sapjco的问题


2.1 背景

使用Postman调用访问SAP的HTTP接口时,后端返回以下错误:

java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path

错误提示当前系统的java类库路径中没有sapjco3,所以需要为系统加上sapjco3。


2.2 解决方法


2.2.1 修改环境变量

执行此步骤之前请确保当前系统已经装好JDK,并配好JDK的环境变量。
编辑环境变量

vim /etc/profile

将最后部分export(用户设置或显示环境变量)部分修改为如下所示(根据自己JDK的实际安装目录修改):

export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64
export CLASSPATH=$JAVA_HOME/lib
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH:$JAVA_HOME/jre/lib/amd64/server

LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。



2.2.2 上传sapjco.jar和libsapjco.so至环境变量中的配置路径

根据环境变量中的配置路径提示,将libsapjco3.so上传至$JAVA_HOME/jre/lib/amd64/server文件夹下,将sapjco3.jar上传至$JAVA_HOME/lib

注意,执行完上述两个步骤后,需要执行:

source /etc/profile

使得新的环境变量生效。


三、sapjco版本太旧


3.1 问题

Native library sapjco3 is too old.
Found library C:\\Windows\\System32\\sapjco3.dll has version \"721.510\",
but required is at least version \"721.1016\

检查System32文件夹下的sapjco3.jar、sapjco3.dll、regcode.dll三个文件,发现均为最新版本。


3.2 解决

此时,需要检查Maven项目中pom文件依赖的sapjco3.jar,如果是旧版本则需要更新为最新版本,此时问题可以解决。


推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ... [详细]
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
author-avatar
再体验初体验g_154
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有