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

Mas*_*ind 6 java linux sap jco

我开发了一个与SAP集成的Java Web应用程序.我用Linux Server和Tomcat 7.0开发了它.我在WEB-INF/lib文件夹中添加了sapjco3.jar和libsapjco3.so.它工作正常的本地服务器.但是在远程服务器中部署WAR文件时会产生以下错误.

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)
Run Code Online (Sandbox Code Playgroud)

从Tomcat服务器ping目标时出现错误.

private JCoDestination dest;    
    public Connection(SapSystem system)  {

    dest = JCoDestinationManager.getDestination(SAP_SERVER);

            dest.ping();
}
Run Code Online (Sandbox Code Playgroud)

问题的原因是什么?

Nas*_*sir 0

SAP服务器的配置一般基于

System IDMessage Server和可能的 aGroup Server以及 an Instance Number

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

尝试使用 SAP 的工具连接到服务器,并尝试提供您原本需要提供的所有设置。

如果您发布您的 JCO 使用的设置,也许我可以提供更多帮助。