Article
· Nov 11 3m de lecture

Passerelle externe vers le langage Java

Si vous aimez Java et que vous avez un écosystème Java florissant au travail dans lequel vous devez incorporer IRIS, ce n'est pas un problème. La passerelle Java External Language Gateway le fera de manière transparente, ou presque. Cette passerelle sert de pont entre Java et Object Script dans IRIS. Vous pouvez créer des objets de classes Java dans IRIS et appeler leurs méthodes. Pour ce faire, il vous suffit de disposer d'un fichier jar.

Connection diagram: proxy object <-> Gateway object <-> TCP/IP <-> External server <-> target object

La première chose à faire est de configurer l'environnement. Pour commencer à utiliser la passerelle Java, assurez-vous que vous disposez des éléments suivants :

  1. InterSystems IRIS: Installé et lancé
  2. Java Development Kit (JDK): Installé et configuré.

La deuxième exigence peut sembler simple, puisque vous utilisez déjà Java dans votre travail, mais ce n'est pas le cas. Merci à cette question, il s'est avéré que vous devez utiliser la version 11 du JDK au maximum. Cela signifie que vous devez changer la version dans votre IDE, ce qui peut poser quelques problèmes.

L'étape suivante consiste à vérifier que tout fonctionne et à essayer d'instancier l'objet d'une classe système Java. Pour ce faire, il faut démarrer une connexion, créer un objet proxy et appeler une méthode. Cela semble être beaucoup de code, mais en réalité, il s'agit juste d'une déclaration :

write $system.external.getJavaGateway().new("java.util.Date").toString()

Cela permet d'imprimer la date et l'heure actuelles à l'écran.

Pour aller plus loin, nous pouvons créer notre propre classe Java :


public class Dish {
	private String name;
	private String description;
	private String category;
	private Float price;
	private String currency;
	private Integer calories;
	
	public void setName(String name) {
		this.name = name;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public void setCategory(String category) {
		this.category = category;
	}

	public void setPrice(Float price) {
		this.price = price;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}

	public void setCalories(Integer calories) {
		this.calories = calories;
	}
	
	public String describe() {
		return "The dish "+this.name+" costs "+this.price.toString()+
				this.currency+" and contains "+this.calories+" calories!";
	}
}

et appeler ses méthodes à partir d'Object Script :

 set javaGate = $SYSTEM.external.getJavaGateway()
 do javaGate.addToPath("D:\Temp\GatewayTest.jar")
 set dish = javaGate.new("Dish")
 do dish.setCalories(1000)
 do dish.setCategory("salad")
 do dish.setCurrency("GBP")
 do dish.setDescription("Very tasty greek salad")
 do dish.setName("Greek salad")
 do dish.setPrice(15.2)
 write dish.describe()

En conséquence, nous obtiendrons une chaîne de caractères contenant la description du plat créé :

The dish Greek salad costs 15.2GBP and contains 1000 calories!

Quite neat, don't you think?

Quoi qu'il en soit, pour en savoir plus sur l'utilisation des passerelles, consultez la Documentation et bonne chance pour mettre en œuvre ces connaissances dans vos projets !

Discussion (1)2
Connectez-vous ou inscrivez-vous pour continuer