最先进项目需要跟SAP进行交互,从windos 环境切到正式环境出现很多问题简单介绍下解决方法,不正确的地方还望大家指正

一、确认jar包

1、用于环境变量的jco for linux:

libsapjcorfc.so、libsapjcorfc.so、sapjco.jar(应用程序用的相同)
libstdc++-libc6.2-2.so.3(这个具体根据环境而定、其中一台机器可以另外一台机器必须要用64位的libstdc++.so.5)

2、用于应用程序的sapjco-ntintel-2.1.8:

librfc32.dll、sapjcorfc.dll、sapjco.jar(同上)

SAP依赖的环境包要求很严格不管是区分系统是32位64位、区分jco的版本号,因此需要两个地方的版本保持一致:
1、系统环境变量2、程序应用的DLL
在茫茫资源中,确保这些保持统一确实很困难。(可以从我的资源中下载)

二、安装环境:

1)Centos6.5 64位
2)JDK 1.7 64位
3)TOMCAT7.0

三、java连sap步骤:

1)下载sapjco.jar
请到service.sap.com/connectors,下载sapjco.jar,本案下载的是sapjco-linuxintel-2.1.8.zip

2)将sapojco文件添加到环境变量中
解压zip文件,将其中librfccm.so、libsapjcorfc.so两个文件,拷贝复制到
JDK的安装目录中$JAVA_HOME/jre/lib/i386/server,我的是在/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server
可能根据cpu或者是jdk的不同有的是i386有的是amd64
同时并将sapjco.jar复制到特定目录下,然后设置CLAsspATH变量即可。

3)在进行sap rfc连接的时候,需要libstdc++-libc6.2-2.so.3库文件,
可从csdn上下载,http://download.csdn.net/source/648150,
将libstdc++-libc6.2-2.so.3库文件复制到librfccm.so、libsapjcorfc.so文件所在的目录即可;
这个根据系统环境不同依赖的libstdc++版本不一样,同样的ibrfccm.so、libsapjcorfc.so在另外一台电脑上必须依赖
libstdc++.so.5,提示:

Co error: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server/libsapjcorfc.so: libstdc++.so.5: 无法打开共享对象文件: 没有那个文件或目录].
java.library.path [/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server:/usr/local/java/jdk1.7.0_79/jre/lib/amd64:/usr/local/java/jdk1.7.0_79/jre/../lib/amd64::/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server:/usr/java



一开始以为是没有安装libstdc++ 重新装了遍libstdc++.so.5还是不好使,将安装的libstdc++.so.5拷贝到libstdc++-libc6.2-2.so.3目录下提示:

JCo error: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server/libsapjcorfc.so: libstdc++.so.5: 错误 ELF 类: ELFCLASS32]. java.library.path [/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server:/usr/local/java/jdk1.7.0_79/jre/lib/amd64:/usr/local/java/jdk1.7.0_79/jre/../lib/amd64::/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
at com.sap.mw.jco.JCO.<clinit>(JCO.java:871)
at com.sap.mw.jco.About.<init>(About.java:49)
at com.sap.mw.jco.About.main(About.java:110)

网上一查刚才放到目录下的libstdc++.so.5是/usr/lib/内32位版本,
到本地usr/lib64目录下 执行 ls libstdc++* 有个 6的版本比5的高,将libstdc++.so.6拷贝到目录下问题依旧
最后从别的机器上 /usr/lib64/下找了个libstdc++.so.5 64位版本,好了!!!!


四、以下是环境变量的几个设置:


vim /etc/profile
在末尾加上ibrfccm.so、libsapjcorfc.so加入到LD_LIBRARY_PATH、sapjco.jar加入到CLAsspATH中

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server
export CLAsspATH=$CLAsspATH:/usr/local/java/jdk1.7.0_79/lib/sapjco.jar

保存并发布source /etc/profile(一定要执行)

设置完成后执行:java -jar /usr/local/java/jdk1.7.0_79/lib/sapjco.jar 查看是否成功
若不报错说明成功!




最后将librfc32.dll、sapjcorfc.dll、sapjco.jar导入到部署程序的WEB-IND/lib下,
以防万一把sapjco.jar也放到tomcat 的 lib中,OK,此时在查看应用是否可以正常调用SAP了。

Centos 部署 java sap 环境 sapjco2.1.8的更多相关文章

  1. ios中的.dylib和.a lib有什么区别?

    我知道Objectivec中的编译和运行时是什么,但是我想知道是什么画了这两个库之间的界限?他们的目的是什么,除了陈述一个是静态的而另一个是动态的?我们何时需要一个而不是另一个?

  2. xamarin.ios – ShareKit与MonoTouch如何?

    有人可以验证ShareKit实际上是否可用于MonoTouch并指导我完成使其工作所需的步骤?解决方法您首先从getsharekit.com下载还是使用ShareKit2.0?

  3. ios – iPhone崩溃日志不能正确地符号化并且是双重间隔的

    任何建议超过欢迎.谢谢.解决方法当这件事发生在我身上时,它只是我通过电子邮件收到的日志.如果我记得,至少有一些是在.msg文件中,我不得不把它们拿出来.它可能是Exchange编码更改.如果你显示不可见的字符,你可能会看到每个字符之间的东西.您可以找到并替换它们以删除它们或更改编辑器中的编码.

  4. ios – Xcode 7 beta 2:LaunchScreen.storyboard无法打开文档

    我在两个不同的Mac(iMac和MacBookpro)上收到这个错误.不知道为什么人们不能再现它,但我需要一些帮助.在运行XX优胜美地10.10.4的Mac上运行Xcode7beta2(15六月’15).甚至无法编译和运行我的项目..我从创建菜单创建了一个视图应用程序项目,就是这样.编辑:我试图删除并重新添加storyboard文件(也可以打开Main.storyboard插件),我仍然得到相同的

  5. ios – 为具有多个目标和不同平台的项目编写Podfile

    如何让CocoaPods成功整合到我的项目和iOS/Mac目标?我已经阅读了Podfile文档,但发现它在这方面缺乏.解决方法得到它了!从我的每个目标和运行的pod安装中删除libPods-xxxx.a文件,再次执行了我的目标集成.

  6. ios – 在/usr/lib/system/libcache.dylib中,缺少必需的架构armv6

    在试图为iphoneos编写一个虚拟程序时,Xcode4,gcc似乎没有超出初始的sysroot目录如果我把sysroot,以下作品,但感觉非常干酪,而且不可伸缩.这里发生了什么?

  7. iOS中的CocoaPods是什么?

    任何人都可以详细说明iOS开发中的CocoaPods.我似乎无法理解它们是什么.提前致谢.解决方法CocoaPods是我在最近的iOS应用程序开发中发现的最好的东西之一.我用它来获取最新的Github开源项目作为框架和lib到我的项目中.最好的部分是它将自动管理依赖lib,因此无需拖放文件并下载文件夹blaablaaa只需一个简单的代码’podinstall即可!

  8. Swift 2/iOS 9 – libz.dylib找不到

    我在我的新的Swift2.0项目中使用一些来自google的外部代码,在早期版本中需要“libz.dylib”。更新到新的XCode/新的SDK后。

  9. android – 用我非常简单的calabash测试用例不断得到错误“HTTPClient :: ReceiveTimeoutError”

    我是calabash-android测试自动化库的新手.我花了两天时间来理解这个问题没有成功:(我正在使用calabash-android版本0.8.0,我按照文档pre-definedsteps进行测试.我的测试很简单,只需等待登录界面(这是一个包含id为“email_field”的输入字段的活动),输入用户名和密码.这是我在功能文件中的步骤:当我使用命令calabash-android运行my

  10. phonegap运行android – create命令失败,退出代码8 – linux

    我做了一些googleing但没有发现任何相关内容.任何帮助赞赏.请务必使用裸体vm进行尝试没有nodejs安装或依赖问题.基督教解决方法我刚刚面临同样的问题,问题是没有正确设置sdk工具的路径:请尝试以下方法:

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部