【问题标题】:JCo (SAP) in OSGi (Karaf)OSGi (Karaf) 中的 JCo (SAP)
【发布时间】:2017-02-01 11:23:32
【问题描述】:

我正在使用 JCo 连接器在使用 JAVA 的 SAP 系统中写入和读取 iDoc。

在“普通 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 容器 (Karaf)。但它立即在这一行崩溃:

server = JCoIDoc.getServer(SERVER);

错误是:

com.sap.conn.jco.JCoException: (106) JCO_ERROR_RESOURCE: 服务器服务器 不存在 在 com.sap.conn.jco.rt.StandaloneServerFactory.update(StandaloneServerFactory.java:338) 在 com.sap.conn.jco.rt.StandaloneServerFactory.getServerInstance(StandaloneServerFactory.java:175) 在 com.sap.conn.idoc.jco.JCoIDoc.getServer(JCoIDoc.java:301)

我不明白为什么会这样……我需要某种特殊配置吗?或者不可能在 OSGi 上运行它。

我知道我可以使用 camel-sap 进行连接,但我想尝试非骆驼解决方案。

【问题讨论】:

  • 所有依赖都部署到Karaf了吗?
  • 是的。这不是依赖问题(我认为)。使用camel-sap时必须安装依赖项。
  • 您是否将 JCo 库和 IDOC 适配器打包到单独的包中?
  • 是的...我使用 sap 的骆驼路线工作正常(有点)...

标签: java apache-camel osgi sap apache-karaf


【解决方案1】:

从 SAP 端来看,OSGi 并不真正支持 SAP 连接器。所以默认初始化可能效果不佳。

另一方面,我知道hibersap 在 OSGi 中运行良好。 因此,您应该能够弄清楚它们是如何进行连接的,或者首先简单地使用它们的抽象。他们漂亮的 pojo 绑定使 SAP 的使用非常方便。

我在一个客户的 Apache Karaf 中使用过 hibersap,自从version 1.2.0 以来它运行得非常好。

【讨论】:

  • Hibersap 好像不支持 iDocs... 可惜
  • “从 SAP 端来看,OSGi 并不真正支持 SAP 连接器。” - 有趣的是它在 ADT 中完美运行,ADT 是一个 Eclipse 扩展,又在 OSGi 框架中运行...
  • 如果您知道如何正确进行初始化,它就可以工作,但据我所知,SAP 并不真正支持它。我会很高兴任何指针,否则我们的客户可能需要这种支持。
  • 顺便说一句,一般来说,我可能会避免直接连接到 SAP 以提取和创建 idocs。我知道没有从 IBM IIB 到其他以安全方式进行集成的平台。如果 SAP PI 可用,请提取 idoc 并将其传送到队列或文件。
【解决方案2】:

我不认为错误信息

com.sap.conn.jco.JCoException: (106) JCO_ERROR_RESOURCE: 服务器服务器 不存在

与 OSGi 有任何关系。它只是说默认的 JCo 运行时无法找到并加载 JCoServer(您将其命名为“SERVER”)的配置。 在您工作的“普通 Java”设置中,这必须存储在属性文件 SERVER.jcoServer 中。在您的 OSGi 环境中,此文件丢失、未存储在正确的目录中或应用程序缺少文件系统所需的读取权限。默认情况下,JCo 在进程的当前工作目录中搜索<destinationName>.jcoDestination<serverName>.jcoServer 配置属性文件。

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多