Мне нужна помощь в разработке в Objectcript Caché.Intersystems Caché Java Gateway
Я работаю в этой технологии несколько месяцев, и с некоторых дней я пытаюсь заставить Java Gateway работать без успеха. Предполагается, что я могу запустить java .class et .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
Я пытался добавить услугу «JavaGatewayService» в ансамбле производства. Не помогло ...
Я также попытался добавить объект шлюза в
Системное администрирование> Конфигурация> Возможности подключения> Шлюзы объектов.
Не помогло ... И я не знаю, если это поможет мне ...
Я из идей/вариантов.
Заранее спасибо.
Вы хотите сказать, что 'Do gateway.% Import (" D: \\ path \\ entertest.jar ")' не импортирует классы Java? И я уже несколько раз смотрел страницу документации, и это не помогло. Я не понимаю, что я делаю неправильно ... –
Прости, я пропустил эту строку. Импорт импортирует классы Java, но по имени, а не по jar. Вы должны поместить там одно имя класса из java или список классов. Посмотрите документацию для этого класса: http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?APP=1&LIBRARY=%25SYS&CLASSNAME=%25Net.Remote.Gateway – DAiMor
Я просто пробовал с ' Импорт (% D: \\ path \\ entertest.class)), но я получаю ту же ошибку, что и выше '' в строке 'Set javaObj = ## class (packagename.packagename2 .entertest).% New (gateway) '... У вас есть еще один намек? –