在我的项目中,我正在使用Java系统将IntersystemsCaché与Java集成,它基本上映射JAR并在Caché中创建一个类代理,以便将Java类访问到JAR中。
Java中的类有一个FileInputStream类型的参数,我的问题是我应该如何发送这个参数Cachéproxy? Caché中的哪种类型的数据代表Java中的FileInputStream?
此致
Lucas Boeing Scarduelli
答案 0 :(得分:1)
当您为该java创建代理时,也应该为FileInputStream创建cache-class。
简单的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)
所以,它运作良好。