Wywołanie kodu JAVA z ESQL
21 stycznia 2011, godz 13:24
W przypadku modułów ESQL istnieje możliwość wywołania metod JAVA prosto z kodu ESQL. Funkcjonalność polega na tym, że poza projektem z przepływami tworzymy projekt JAVA, który wskazujemy jako referencje w projekcie z przepływem. W efekcie w pliku bar poza przepływem deployuje się plik jar powstały z projektu JAVA i zawierający kod, który chcemy z ESQL wywołać. Następnie wewnątrz ESQL deklarujemy zewnętrzną procedurę JAVA, której parametry wejściowe i parametr wyjściowy odpowiadają parametrom kodu Java. Ważne jest, że metoda JAVA, która chcemy wywołać z kodu ESQL musi być typu static. Przykład procedury ESQL:
,IN host CHARACTER
, IN port INTEGER
, IN database CHARACTER, IN user CHARACTER, IN password CHARACTER
)
RETURNS BOOLEAN LANGUAGE JAVA EXTERNAL
NAME "dbrouting.DBRouter.getRecords";
Kod Java
public static Boolean getRecords(MbElement tab, String queue_in
,String host
,Long port
,String database, String user, String password
)
{
return true;
}
Poniższa lista zawiera mapowanie typów danych pomiędzy ESQL a JAVA
| ESQL | JAVA IN | JAVA INOUT i OUT |
|---|---|---|
| INTEGER | Long | Long[] |
| FLOAT | Double | Double[] |
| DECIMAL | BigDecimal | BigDecimal[] |
| CHARACTER | String | String[] |
| BLOB | byte | byte[] |
| BIT | BitSet | BitSet[] |
| DATE | com.ibm.broker.plugin.MbDate | com.ibm.broker.plugin.MbDate[] |
| TIME | com.ibm.broker.plugin.MbTime | com.ibm.broker.plugin.MbTime[] |
| GMTTIME | com.ibm.broker.plugin.MbTime | com.ibm.broker.plugin.MbTime[] |
| TIMESTAMP | com.ibm.broker.plugin.MbTimestamp | com.ibm.broker.plugin.MbTimestamp[] |
| GMTTIMESTAMP | com.ibm.broker.plugin.MbTimestamp | com.ibm.broker.plugin.MbTimestamp[] |
| INTERVAL | Brak | Brak |
| BOOLEAN | Boolean | Boolean[] |
| REFERENCE | com.ibm.broker.plugin.MbElement | com.ibm.broker.plugin.MbElement[] |
| ROW | Brak | Brak |
| LIST | Brak | Brak |
Komentarze
Dodaj Komentarz
Newsletter
Jeżeli chcesz być na bieżąco informowany o aktualnościach zapisz się do naszego newslettera - za darmo.

