我正在使用JCo连接器使用JAVA从SAP系统写入和读取iDoc。OSGi(Karaf)中的JCo(SAP)
在“普通JAVA”中,这个工作没有问题。
server = JCoIDoc.getServer(SERVER);
server.setIDocHandlerFactory(new MyIDocHandlerFactory());
server.setTIDHandler(new MyTidHandler());
MyThrowableListener listener = new MyThrowableListener();
server.addServerErrorListener(listener);
server.addServerExceptionListener(listener);
server.setConnectionCount(1);
server.start();
现在...我想捆绑这个代码,并把它放在一个OSGi容器(卡拉夫)。但是,在这一行立即崩溃:
server = JCoIDoc.getServer(SERVER);
的错误是:
com.sap.conn.jco.JCoException:(106)JCO_ERROR_RESOURCE:服务器服务器 根本不存在的COM 。 sap.conn.jco.rt.StandaloneServerFactory.update(StandaloneServerFactory.java:338) at com.sap.conn.jco.rt.StandaloneServerFactory.getServerInstance(StandaloneServerFactory.java:175) at com.sap.conn.idoc。 jco.JCoIDoc.getServer(JCoIDoc.java:301)
我不明白为什么会发生这种情况...我需要某种特殊配置吗?或者不可能在OSGi上运行这个。
我知道我可以使用骆驼汁来做连接,但我想尝试一个非骆驼解决方案。
是否所有的依赖都被部署到Karaf? –
是的。这不是依赖性问题(我认为)。当我使用camel-sap时,我不得不安装依赖关系。 – Desenfoque
您是否已将JCo库和IDOC适配器打包到单独的捆绑包中? – vwegert