java - Intersystems Caché 与 Java Gateway - 将参数作为 java.io.FileInputStream 传递

标签 java intersystems-cache intersystems intersystems-ensemble

在我的项目中,我通过 Java 网关使用 Intersystems Caché 与 Java 的集成,它基本上是映射 JAR 并在 Caché 中创建类代理以访问 JAR 中的 Java 类。

Java 中的类有一个 FileInputStream 类型的参数,我的问题是我应该如何发送这个参数 Caché proxie ? Caché 中什么类型的数据代表 Java 中的 FileInputStream?

问候,

卢卡斯·波音·斯卡杜埃利

最佳答案

当您为该 java 创建代理时,也应该为 FileInputStream 创建缓存类。

简单的java类,使用FileInputStream作为函数中参数的类型

package org.daimor;

import java.io.FileInputStream;
import java.io.IOException;

public class test {

    public long sizeStream(FileInputStream stream)
    {
        try {
            return stream.getChannel().size();
        } catch (IOException ex)
        {
            return -1;
        }
    }
}

然后我在 Caché Studio 中为这个 jar 文件创建了投影。并写了一段代码

Set gateway = ##class(%Net.Remote.Gateway).%New()
Do gateway.%Connect("127.0.0.1", 55555)

Set file = ##class(java.io.FileInputStream).%New(gateway, "c:\test.txt")
Set javaObj=##class(org.daimor.test).%New(gateway)
Set size=javaObj.sizeStream(file)

所以,效果很好。

关于java - Intersystems Caché 与 Java Gateway - 将参数作为 java.io.FileInputStream 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32789169/

相关文章:

sonarqube - 任何将 SonarCube 与 ObjectScript 一起使用的人

java - 仅从字符串标签中提取值

java - java中后增量的行为

sql - 要列出的缓存 SQL 列

python - 如何在 Python 中连接到 Intersys 缓存数据库

database - InterSystems Caché - 如何访问 Caché Studio?

java - 如何根据用户输入实例化数组

java - <name> 的 POM 无效,传递依赖项(如果有)将不可用

intersystems-cache - 使用其中一个属性的唯一值搜索对象的最佳方法