我使用SAP JCo连接到SAP系统的前端是Java(JSF),当我连接到SAP系统与下面的代码,我有一个问题时,第一次运行应用程序,数据显示,但当我重新运行它说
无法加载中间件层“com.sap.mw.jco.rfc.MiddlewareRFC”
谁能帮我解决这个问题?????
验证码:
try {
mConnection =JCO.createClient("400", // SAP client
"c3026902", // userid
"********", // password
"EN", // language
"iwdf5020", // host name
"00"); // system number
mConnection.connect();
}
catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
3条答案
按热度按时间mxg2im7a1#
这听起来像是API无法加载本机驱动程序文件。SAP Java Connector由一个执行实际通信的本地运行时部分和一个使用java API Package 此功能的Java API组成。Java API位于sapjco.jar中,本地驱动程序位于librfc32.dll和sapjcorfc.dll中的Windows上。将这些dll文件放到您的系统路径中(例如windows:C:\WiNDOWS\system32),它应该运行。
干杯塞巴斯蒂安
jjhzyzn02#
您的DLL是否位于Windows system32文件夹中?如果是这样的话,您是否使用了错误的架构?(32位x64 DLL或反之亦然)另外,DLL与Java API的版本相同吗?如果您安装了SAP GUI,则可能存在较旧的DLL。
noj0wjuj3#
定义SAP连接:
对于sapjco库的版本3.0,存在大量有用的信息。要按照中的说明创建连接,请执行以下操作:
http://www.browseye.com/linkShare.html?url=http://help.sap.com/saphelp_nwpi711/helpdata/en/46/fb807cc7b46c30e10000000a1553f7/content.htm?bwsCriterion=%22Setting%20Up%20Connection%22&bwsMatch=1&bwsCriterion=%22Setting%20Up%20Connection%22&bwsMatch=1
有几件事你应该考虑:
将dll文件放在jar文件所在的位置。dll必须是您的操作系统和体系结构的正确版本,否则您将获得本机库错误。
创建到服务器的连接的代码示例。
在SAPJco 3.0中,连接是根据“目的地”中包含的信息建立的。
文档示例使用属性文件保存“目标”。但是,这是一种不安全的方式来保存连接信息。正如文档中突出显示的段落所示,您可以在下一个链接中看到。
http://help.sap.com/saphelp_nwpi711/helpdata/en/48/5fb9f9b523501ee10000000a421937/content.htm?bwsCriterion=%22In%20practice%20you%20should%20avoid%20this%20for%20security%20reasons.%22&bwsMatch=1
如果创建自定义的“DestinationDataProvider”,则可以在数据库或任何其他存储系统上保留连接信息。在SAPJco库提供的示例中,有一个如何创建自定义DestinationDataProvider的示例。