簡體   English   中英

OSGi(Karaf)中的JCo(SAP)

[英]JCo (SAP) in OSGi (Karaf)

我正在使用JCo連接器從使用JAVA的SAP系統寫入和讀取iDocs。

在“普通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上的com.sap.conn.jco.rt.StandaloneServerFactory.update(StandaloneServerFactory.java:338)上不存在服務器服務器。 com.sap.conn.idoc.jco.JCoIDoc.getServer(JCoIDoc.java:301)上的rt.StandaloneServerFactory.getServerInstance(StandaloneServerFactory.java:175)

我不明白為什么會這樣...我需要某種特殊的配置嗎? 或者不可能在OSGi上運行它。

我知道我可以使用駱駝樹液進行連接,但是我想嘗試一種非駱駝的解決方案。

從SAP方面來看,OSGi並不真正支持SAP連接器。 因此,默認初始化可能效果不佳。

另一方面,我知道hibersap在OSGi中運行良好。 因此,您應該能夠弄清楚它們是如何進行連接的,或者首先只是使用它們的抽象即可。 它們很好的pojo綁定使SAP使用非常方便。

我曾在一個客戶的Apache Karaf中使用過hibersap,從1.2.0版本開始 ,它的運行效果非常好。

我不認為該錯誤信息

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

與OSGi有關。 它只是說默認的JCo運行時無法找到和加載JCoServer(您將其命名為“ SERVER”)的配置。 在工作的“普通Java”設置中,該文件必須已經存儲在屬性文件SERVER.jcoServer 在您的OSGi環境中,該文件丟失了,或者沒有存儲在正確的目錄中,或者應用程序缺少文件系統上所需的讀取權限。 默認情況下,JCo在進程的當前工作目錄中搜索那些<destinationName>.jcoDestination<serverName>.jcoServer配置屬性文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM