Caché の Objectscript での開発について助けが必要です。
私はこのテクノロジに数か月取り組んできましたが、数日以来、Java ゲートウェイを機能させようとしていますが、うまくいきません。java .class と .jar コードを実行できるはずです。
しかし、ドキュメントで説明されていても、完全な例はなく、エラーが何度も発生しています。それで、誰かが完全な例を提供したり、私を修正したり、私が間違っていることを説明したりできるかどうか疑問に思っていましたか?
ここに私が今持っているものがあります:
私の単純な Java クラス - ファイルに日付と時刻を書き込む
package packagename.packagename2;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.time.LocalDateTime;
public class entertest {
public int enter() throws IOException
{
File file = new File("D:\\path\\filemane.txt");
if (!file.exists()) {
file.createNewFile();
}
BufferedWriter bf = new BufferedWriter(new FileWriter(file.getAbsoluteFile()));
bf.write(LocalDateTime.now().toString());
bf.close();
return 1;
}
}
私の objectscript コード - ゲートウェイを定義し、メソッドを呼び出してみます
Class domain.java.TestJava Extends EnsLib.HL7.Service.TCPService
{
Method OnProcessInput(pLine As Ens.StringContainer, Output pLineLeftOver As Ens.StringContainer) As %Status
{
Do ##super(pLine,pLineLeftOver)
Set val = 0
$$$TRACE(val)
Set gateway = ##class(%Net.Remote.Gateway).%New()
Do gateway.%Connect("127.0.0.1", 55553)
Do gateway.%Import("D:\\path\\entertest.jar")
Set javaObj = ##class(packagename.packagename2.entertest).%New(gateway)
Set val = javaObj.enter()
$$$TRACE(val)
Quit $$$OK
}
}
エラーが発生します:
ERREUR <Ens>ErrException: <CLASS DOES NOT EXIST>zOnProcessInput+9^domain.java.TestJava.1 *packagename.packagename2.entertest
-- - connecté en tant que '-' numéro - @' Set javaObj = ##class(packagename.packagename2.entertest).%New(gateway)'
私はこの投稿を使用しましたが、彼がどのように機能させたのかわかりません: Intersystems Caché with Java Gateway - Pass parameter as java.io.FileInputStream
Ensembleプロダクションにサービス「JavaGatewayService」を追加してみました。役に立ちませんでした...
オブジェクトゲートウェイも追加しようとしました
[システム管理] > [構成] > [接続] > [オブジェクト ゲートウェイ]。
役に立たなかった...そして、それが私を助けるべきかどうかわからない...
アイデア/オプションがありません。
前もって感謝します。