首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAP+Java : java.lang.NoClassDefFoundError: com.sap.conn.rfc.driver.CpicDriver

SAP+Java : java.lang.NoClassDefFoundError: com.sap.conn.rfc.driver.CpicDriver
EN

Stack Overflow用户
提问于 2013-08-06 16:53:41
回答 2查看 2.7K关注 0票数 6

我已经开发了一个与SAP集成的java web应用程序。我是用Linux Server和Tomcat7.0开发的。我已经在WEB-INF/lib文件夹中添加了sapjco3.jar和libsapjco3.so。它在本地服务器上运行良好。但在远程服务器中部署WAR文件时,会生成以下错误。

代码语言:javascript
复制
java.lang.NoClassDefFoundError: com.sap.conn.rfc.driver.CpicDriver
    at com.sap.conn.rfc.engine.DefaultRfcRuntime.createChannel(DefaultRfcRuntime.java:52)
    at com.sap.conn.rfc.engine.RfcIoOpenCntl.open_channel(RfcIoOpenCntl.java:1260)
    at com.sap.conn.rfc.engine.RfcIoControl.ab_rfcopen(RfcIoControl.java:85)
    at com.sap.conn.rfc.api.RfcApi.RfcOpen(RfcApi.java:83)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc$JavaRfcClient.connect(MiddlewareJavaRfc.java:1107)
    at com.sap.conn.jco.rt.ClientConnection.connect(ClientConnection.java:659)
    at com.sap.conn.jco.rt.PoolingFactory.init(PoolingFactory.java:103)
    at com.sap.conn.jco.rt.ConnectionManager.createFactory(ConnectionManager.java:171)
    at com.sap.conn.jco.rt.DefaultConnectionManager.createFactory(DefaultConnectionManager.java:44)
    at com.sap.conn.jco.rt.ConnectionManager.getFactory(ConnectionManager.java:160)
    at com.sap.conn.jco.rt.RfcDestination.initialize(RfcDestination.java:754)
    at com.sap.conn.jco.rt.RfcDestination.ping(RfcDestination.java:964)
    at com.my.ciry.sap.Connection.<init>(Connection.java:63)

从Tomcat Server ping目标时出现错误。

代码语言:javascript
复制
private JCoDestination dest;    
    public Connection(SapSystem system)  {

    dest = JCoDestinationManager.getDestination(SAP_SERVER);

            dest.ping();
}

问题的原因是什么?

EN

回答 2

Stack Overflow用户

发布于 2013-08-17 02:27:37

SAP服务器通常根据以下条件进行配置

System IDMessage Server和可能的Group Server以及Instance Number

在实例化连接时,您可能需要传递这些参数。在本地主机上,这些可能是不需要的/可忽略的,但在生产环境中,它们是必需的。

尝试使用SAP的工具连接到服务器,并尝试提供否则将提供的所有设置。

如果你贴出你的JCO所使用的设置,也许我可以提供更多帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-05-28 13:06:40

理想情况下,您应该将libsapjco3.so文件放在web应用程序之外。将其放置在任意位置,并将该文件夹路径添加到LD_LIBRARY_PATH环境变量。sapjco.jar可以在您的类路径中。

如果tomcat无法使用环境变量加载.so文件,可以尝试使用System.setProperty("java.library.path","folder_path_of_.so_file");

或者尝试通过编辑tomcat配置文件来提供此变量。

最后,确保folder_path_of_.so_file拥有tomcat用户所需的权限。

这将解决您的问题。

.

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

https://stackoverflow.com/questions/18075671

复制
相关文章

相似问题

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