首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAP Cloud Platform (Cloud Foundry)上的JCO问题

SAP Cloud Platform (Cloud Foundry)上的JCO问题
EN

Stack Overflow用户
提问于 2019-09-02 20:53:29
回答 1查看 492关注 0票数 0

我想在SCP CF上运行一个Sprint Boot组件,它使用JCO连接到后端系统。我有一个使用SCP NEO的有效解决方案,但是使用SCP CF我得到了一个运行时错误。

最初,我在SCP NEO堆栈上使用JCO创建了一个Spring Boot Java组件。这样一切都很好。在第二步中,我希望将组件迁移到SCP的Cloud Foundry堆栈。因此,a进行了必要的配置(目的地等),并将组件部署在SCP CF堆栈上。我可以通过Postman部署组件并调用REST服务,但在内部,当我尝试连接到已配置的后端目的地时,当我尝试创建JCODestination时,收到运行时错误"java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path“

似乎JCO库还没有到位。我必须在SCP CF中明确定义JCO库吗?如果是,如何做到这一点?如上所述,在SCP NEO下,我没有得到这样的错误...

代码语言:javascript
复制
public JCoDestination getJcoDestination(String target, String jcoDestinationName) {

  JCoDestination jcoDestination = null;
  try {
    jcoDestination = JCoDestinationManager.getDestination(jcoDestinationName);
  } catch (JCoException e) {
    throw new RuntimeException("Unable to create/read the destination files, target="+target+",      
    destinationName="+jcoDestinationName, e);
  }

  return jcoDestination;
}

错误日志显示:

代码语言:javascript
复制
java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1966)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1134)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.loadJCoLibrary(DefaultJCoRuntime.java:898)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:467)
    at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:1554)
    at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:885)
    at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:36)
    at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:236)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:214)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:98)
    at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forNameFW(Class.java:362)
    at java.lang.Class.forName(Class.java:270)
    at com.sap.conn.jco.JCo.createJCo(JCo.java:52)
    at com.sap.conn.jco.JCo.<clinit>(JCo.java:26)
    at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:104)
EN

回答 1

Stack Overflow用户

发布于 2019-09-04 01:28:50

对于SAP Cloud Platforms (Neo + Cloud Foundry),您不能单独使用JCo,但您必须使用已经嵌入/集成的JCo版本,该版本能够通过SAP Cloud Connector进行通信。但是,用于CF环境的SAP Java buildpack附带的JCo不能用于Spring Boot应用程序:

查看列出的限制here

不能将SAP Java连接器与Spring Boot应用程序一起使用。

因此,我担心您试图实现的目标是不可能实现的。Neo云平台不存在此限制,这似乎是您在那里没有任何问题的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57757297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档