<< Fare clic per visualizzazione il sommario >> Percorso: Api SOAP > Pubblicazione di un evento prodotto da un sistema esterno |
Pubblicazione di un evento nella piattaforma Jamio
Creazione e pubblicazione di un evento custom
In questo paragrafo descriviamo i metodi coinvolti e i relativi parametri. Prima di procedere occorrono alcune specificazioni:
•E’ necessario possedere le credenziali di accesso alla piattaforma Jamio (nome utente, password e Area). Normalmente queste informazioni sono già in possesso di che vuole accedere alla piattaforma. In caso contrario richiederle all’Amministratore dell’Area;
•L’evento che si vuole inviare deve essere noto alla piattaforma per nome e contenuto. Questo implica che il modello di evento debba essere registrato sull’area in questione;
•Occorre possedere l’identificativo - oltre che il nome - dell’Area, l’identificativo del modello di evento e il nome dello stesso. Queste informazioni devono essere richieste al gestore dell’Area;
•Il risultato della invocazione a qualsiasi metodo delle API di Jamio è di tipo ServiceResult. Esso contiene l’esito della chiamata, il risultato vero e proprio del metodo – laddove previsto - e una lista di eventuali messaggi (informazioni, warning o errori).
Le azioni da effettuare per pubblicare un evento sono le seguenti:
1.Autenticazione del chiamante tramite invocazione al metodo Login del servizio SessionManagement. Questa può essere effettuata una tantum, fintanto che la relativa sessione aperta resti in piedi e quindi non scada il token generato o non sia chiusa la sessione. Il metodo Login del servizio SessionManagement richiede in input i parametri:
Parametri del metodo Login |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
identityRepositoryName |
Identificativo dell’Area. |
String |
|
userName |
Nome utente di autenticazione. |
String |
|
password |
Password dell'utente che effettua l'autenticazione. |
String |
|
multiPosition |
Indicare come valore false. |
Bool |
|
source |
Rappresenta un identificativo del sistema che effettua la richiesta |
String |
|
2.Creazione di un evento tramite la valorizzazione di un oggetto di tipo CustomEvent. L’evento è descritto dal suo modello, che ne identifica il tipo e ne descrive la struttura, che la piattaforma Jamio vede come un insieme di campi, il cui identificativo è il nome. L’utente dovrà riempire una lista o un array o un dizionario di oggetti, in base alla interpretazione che le utility messe a disposizione dai diversi IDE danno al WSDL, nell’ordine e con il nome richiesto dal modello.
3.Pubblicazione dell’evento nella piattaforma, tramite l’invocazione del metodo PublishEvent del Servizio EventManagement, di cui riportiamo i parametri:
Parametri del metodo PublishEvent |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
repositoryId |
Identificativo dell’Area. |
String |
|
publishEvent |
Evento Custom da inviare. |
EventMessage |
|
info |
Oggetto contenente il token di sessione. |
RequestInfo |
|
Jamioware per il test
Nei paragrafi successivi sono riportati esempi di pubblicazione (o invio) evento in C# e Java.
Per consentire il funzionamento corretto degli esempi è stato preparato un Jamioware dal nome TestEvent, a corredo di questa pagina, all'interno dell’archivio TestEvent.zip, che prepara la propria Area a riceverne l’evento.
Una volta installato questo Jamioware, sarà possibile inviare l’evento.
La sua ricezione sarà notificata all’utente definito in fase di installazione del Jamioware su Jamio on Stage.
#C Example
Preparazione del Proxy
Per interrogare i suddetti metodi agevolmente sono a disposizione diverse possibilità. Ad esempio, in Visual Studio è possibile aggiungere una Service Reference tra i riferimenti di progetto.
L’utilizzo delle funzionalità messe a disposizione dagli IDE è consigliato, in quanto consente di utilizzare le utility direttamente nella versione meglio compatibile con l’IDE stesso. Nell’esempio, comunque, è utilizzata la generazione dello skeleton (o proxy) dal WSDL delle interfacce dei Web Services attraverso l’utilizzo dell’applicazione svcutil.exe presente nel pacchetto Microsoft SDK for Windows. Questa utility cambia in base alla versione dell’SDK, cambiando la location dell’utility stessa e il risultato che essa genera. Se il comando di seguito riportato non funzionasse occorrerebbe trovare la svcutil installata sulla propria macchina.
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\svcutil.exe /out:ProxyJamio.cs /serializer:Auto https://paas.jamio.com/gateway/gateway/ISessionManagement/mex?wsdl https://paas.jamio.com/gateway/gateway/IEventManagement/mex?wsdl |
Durante l’esecuzione del comando la console mostrerà una serie di errori, ma non inficeranno il risultato finale, che sarà la generazione del file ProxyJamio.cs. Per questo esempio si è scelto di utilizzare endpoint di tipo https.
Jamioware Visual Studio
Il Jamioware di seguito descritto è disponibile nell’archivio qui scaricabile PublishEventCSharp.zip.
Per la preparazione del Jamioware effettua i seguenti passi:
1. Inserisci nel Jamioware il file ProxyJamio.cs prodotto al passo precedente;
2. Verifica che nel Jamioware siano presenti i riferimenti a System.Runtime.Serialization e System.ServiceModel, altrimenti aggiungili;
3. Verifica che nell’area a cui vuoi accedere sia stato installato il Jamioware Jamio TestEvent. In caso contrario installalo o richiedine l’installazione al gestore del tenant;
4. Sovrascrivi il file app.config con il contenuto qui di seguito riportato.
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="basicHttpsBinding_Gateway">
<readerQuotas maxDepth="65536" maxStringContentLength="65536"
maxArrayLength="65536" maxBytesPerRead="65536" maxNameTableCharCount="65536"/>
<security mode="Transport" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address=”https://paas.jamio.com/gateway/gateway/ISessionManagement”
binding="basicHttpBinding" bindingConfiguration="basicHttpsBinding_Gateway"
contract="ISessionManagement"
name="basicHttpsBinding_Gateway_ISessionManagement"/>
<endpoint address=”https://paas.jamio.com/gateway/gateway/IEventManagement”
binding="basicHttpBinding" bindingConfiguration="basicHttpsBinding_Gateway"
contract="IEventManagement"
name="basicHttpsBinding_Gateway_IEventManagement"/>
</client>
</system.serviceModel>
</configuration>
5. Inserisci prima del codice di invio lo using www.openworkbpm.com.schema, o comunque quello del namespace inserito dall’utility
6. Copia il codice e valorizza i parametri e le credenziali.
Jamioware e codice di esempio
using www.openworkbpm.com.schema;
// Indirizzo di base (da modificare solo su specifiche indicazioni)
static string realBaseAddress = "https://paas.jamio.com/gateway/gateway/";
// parametri e credenziali da impostare
static string userName = "";
static string password = "";
static string identityRepositoryName = "";
static string repositoryId = "";
static string eventTestModelUrl = "";
static string eventTestDataSetModelUrl = "";
static string eventTestArraysModelUrl = "";
static string eventTestReferenceModelUrl = "";
// fine parametri
static void Main(string[] args)
{
// rappresenta un identificativo del sistema che effettua la richiesta
// a discrezione dello sviluppatore
string source = Environment.MachineName;
//creazione del client per la gestione delle sessioni
SessionManagementClient SessionManagement = new SessionManagementClient("basicHttpsBinding_Gateway_ISessionManagement", realBaseAddress + "ISessionManagement");
//Invocazione del servizio di login
ServiceResultOfLoginInfo loginResult = SessionManagement.Login(identityRepositoryName, userName, password, false, source);
if (!loginResult.Error)
{
Console.WriteLine("Login: OK");
}
else
{
Console.WriteLine("Login: KO. " + loginResult.ResultInfoList[0].Message);
SessionManagement.Close();
return;
}
//creazione dell’oggetto richiesto dalle invocazioni contente il token di sessione
RequestInfo info = new RequestInfo();
info.Token = loginResult.Value.Token;
// invio dell'evento semplice
SendTestEvent(createTestEvent(), info);
// invio dell'esempio con dataset
SendTestEvent(createTestEventDataSet(), info, new List<Type> {typeof(DataSetValue)});
// invio dell'esempio con array
SendTestEvent(createTestEventArrays(), info, new List<Type> { typeof(ArrayValue) });
// invio dell'esempio con reference
SendTestEvent(createTestEventReference(), info, new List<Type> { typeof(NamedReference),typeof(CatalogItemValue) });
// logout e chiusura sessione
Console.WriteLine("Logout...");
SessionManagement.CloseSession(info);
SessionManagement.Close();
Console.WriteLine("Invio eventi terminato... Premi INVIO per uscire");
Console.Read();
}
private static void SendTestEvent(CustomEvent EventToSend, RequestInfo info, List<Type> KnownTypes = null)
{
//creazione del client per la gestione degli eventi
EventManagementClient EventManagement = new EventManagementClient("basicHttpsBinding_Gateway_IEventManagement", realBaseAddress + "IEventManagement");
if (KnownTypes!= null)
foreach (Type KnownType in KnownTypes)
addKnownType(EventManagement.Endpoint, KnownType);
// invio dell'evento
ServiceResultOfboolean eventResult = EventManagement.PublishEvent(repositoryId, EventToSend, info);
if (!eventResult.Error)
{
Console.WriteLine("Publish " + EventToSend.ModelReference.Name + ": OK");
}
else
{
Console.WriteLine("Publish " + EventToSend.ModelReference.Name + ": KO. " + eventResult.ResultInfoList[0].Message);
}
EventManagement.Close();
}
private static void addKnownType(System.ServiceModel.Description.ServiceEndpoint proxyEndPoint, Type knownType)
{
foreach (var op in proxyEndPoint.Contract.Operations)
{
if (!op.KnownTypes.Contains(knownType))
op.KnownTypes.Add(knownType);
}
}
private static CustomEvent createTestEvent()
{
var EventToSend = new CustomEvent();
//modello dell'evento
EventToSend.ModelReference = new NamedReference
{
Name = "TestEvent",
Type = Types.CustomEvent,
Url = eventTestModelUrl
};
EventToSend.Fields = new Fields();
EventToSend.Fields.Add("campo stringa", "campo stringa");
EventToSend.Fields.Add("campo numerico", 1);
EventToSend.Fields.Add("campo booleano", true);
EventToSend.Fields.Add("campo data", DateTime.Now);
return EventToSend;
}
private static CustomEvent createTestEventDataSet()
{
var EventToSend = new CustomEvent();
//modello dell'evento
EventToSend.ModelReference = new NamedReference
{
Name = "TestEventDataSet",
Type = Types.CustomEvent,
Url = eventTestDataSetModelUrl
};
EventToSend.Fields = new Fields();
EventToSend.Fields.Add("campo stringa", "campo stringa");
EventToSend.Fields.Add("campo numerico", 1);
EventToSend.Fields.Add("campo booleano", true);
EventToSend.Fields.Add("campo data", DateTime.Now);
DataSetValue dataset = new DataSetValue();
dataset.Fields = new Fields();
dataset.Fields.Add("booleano", true);
dataset.Fields.Add("float", 1.2);
dataset.Fields.Add("dataeora", DateTime.Now);
dataset.Fields.Add("testo", "nunzio");
dataset.Fields.Add("decimale", Convert.ToDecimal(1));
dataset.Fields.Add("intero", 1);
EventToSend.Fields.Add("campo dataset", dataset);
return EventToSend;
}
private static CustomEvent createTestEventArrays()
{
var EventToSend = new CustomEvent();
//modello dell'evento
EventToSend.ModelReference = new NamedReference
{
Name = "TestEventArrays",
Type = Types.CustomEvent,
Url = eventTestArraysModelUrl
};
EventToSend.Fields = new Fields();
EventToSend.Fields.Add("campo stringa", new ArrayValue { Elements = new SerializableListOfanyType() { "nunzio", "nunzio1" } });
EventToSend.Fields.Add("campo numerico", new ArrayValue { Elements = new SerializableListOfanyType() { 1 } });
EventToSend.Fields.Add("campo booleano", new ArrayValue { Elements = new SerializableListOfanyType() { true } });
EventToSend.Fields.Add("campo data", new ArrayValue { Elements = new SerializableListOfanyType() { DateTime.Now } });
DataSetValue dataset = new DataSetValue();
dataset.Fields = new Fields();
dataset.Fields.Add("booleano", true);
dataset.Fields.Add("float", 1.2);
dataset.Fields.Add("dataeora", DateTime.Now);
dataset.Fields.Add("testo", "nunzio");
dataset.Fields.Add("decimale", Convert.ToDecimal(1));
dataset.Fields.Add("intero", 1);
EventToSend.Fields.Add("campo dataset", new ArrayValue { Elements = new SerializableListOfanyType() { dataset } });
return EventToSend;
}
private static CustomEvent createTestEventReference()
{
var EventToSend = new CustomEvent();
//modello dell'evento
EventToSend.ModelReference = new NamedReference
{
Name = "TestEventReference",
Type = Types.CustomEvent,
Url = eventTestReferenceModelUrl
};
EventToSend.Fields = new Fields();
EventToSend.Fields.Add("campo collegamento", new NamedReference { Name = "nunzio", Type = Types.Account, Url = "url" });
CatalogItemValue extref = new CatalogItemValue();
extref.Fields = new Fields();
extref.Fields.Add("booleano", true);
extref.ModelReference = new NamedReference { Name = "name", Type = Types.AccountCriteria, Url = "url" };
extref.Name = "name";
extref.Type = Types.AccountCriteriaEvent;
extref.Url = "url";
EventToSend.Fields.Add("campo esteso", extref);
return EventToSend;
}
}
Nota bene: Per inserire nei field particolari definizioni di classi, occorre aggiungere tra i KnownTypes dell’endpoint il type delle suddette classi. A tale scopo è stato inserito il metodo privato:
private static void addKnownType(System.ServiceModel.Description.ServiceEndpoint proxyEndPoint, Type knownType)
nell’esempio i tipi da aggiungere sono passati per mezzo di apposita lista e cambiano, appunto, in base al contenuto dei campi.
Java Example
Preparazione del Proxy
Per poter generare lo skeleton (o proxy) dal WSDL delle interfacce dei Web Services ci avvarremo della creazione di un progetto Maven all'interno dell'IDE Eclipse. Le versioni adottate nell'esempio sono:
•Eclipse Mars.2 v.4.5.2
•Plugin Maven m2e v.1.6.2
Maven è quindi un plugin di Eclipse e, se non presente, deve essere aggiunto e installato tra i software in dotazione dell’IDE.
Pe la creazione del proxy occorre creare un progetto Maven, utilizzando l’apposito Wiizard. Nel nostro caso sono state effettuate le seguenti scelte:
•selezionata l’opzione Create simple project
•inserito come Group Id it.openwork.jamio
•inserito come Artifact Id proxyJamio,
•selezionata la modalità Packaging JAR.
In seguito occorre modificare il file POM.xml, del quale il wizard ha creato uno skeleton, da compilare con i comandi e i riferimenti alle librerie necessarie alla creazione in un unico jar del proxy. Per questo esempio sono stati scelti endpoint di tipo http.
Nota bene: Nel caso si scegliessero gli endpoint https occorre scaricare il certificato di sicurezza ed importarlo nel keystore mediante questo comando, da lanciare da prompt di comando, posizionandosi nella cartella bin del path in cui è installata la jre (java runtime enviroment) scelta:
keytool -importcert -keystore cacerts -alias openwork -file jamio.com.crt
Di seguito il contenuto del file POM.xml da noi generato:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>it.openwork.jamio</groupId>
<artifactId>proxyJamio</artifactId>
<version>v.4.4</version>
<packaging>jar</packaging>
<name>proxyJamio</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.jconfig</groupId>
<artifactId>jconfig</artifactId>
<version>2.9</version>
<exclusions>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>javax.xml.parsers</groupId>
<artifactId>jaxp-api</artifactId>
</exclusion>
<exclusion>
<groupId>crimson</groupId>
<artifactId>crimson</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>Session</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<bindingFiles>
<bindingFile>${basedir}/binding.xjb</bindingFile>
</bindingFiles>
<wsdlUrls>
<wsdlUrl>http://paas.jamio.com/gateway/gateway/ISessionManagement/mex?wsdl</wsdlUrl>
</wsdlUrls>
<keep>true</keep>
<packageName></packageName>
<sourceDestDir>${basedir}/src/</sourceDestDir>
<destDir>${basedir}/target/jaxws</destDir>
</configuration>
</execution>
<execution>
<id>Event</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<bindingFiles>
<bindingFile>${basedir}/binding.xjb</bindingFile>
</bindingFiles>
<wsdlUrls>
<wsdlUrl>http://paas.jamio.com/Gateway/Gateway/IEventManagement/mex?wsdl</wsdlUrl>
</wsdlUrls>
<keep>true</keep>
<extension>true</extension>
<packageName></packageName>
<sourceDestDir>${basedir}/src/</sourceDestDir>
<destDir>${basedir}/target/jaxws</destDir>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src</directory>
<includes>
<include>wsdl/**/*.*</include>
</includes>
</resource>
</resources>
</build>
</project>
Nella stessa location del file pom.xml, deve essere inserito il file denominato binding.xjb, di cui si riporta il contenuto:
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<jxb:globalBindings generateElementProperty="false">
<jxb:javaType name="java.util.Date" xmlType="xs:dateTime"/>
</jxb:globalBindings>
</jxb:bindings>
Il progetto Maven è dunque pronto e la sua esecuzione produrrà nella cartella target il file: proxyJamiov.4.4.5jar.
Preparazione del Client
A questo punto, sempre all'interno dello stesso workspace, creiamo un nuovo JavaProject, utile a effettuare il test del client per il proxyJamio appena creato con la procedura maven. Una volta creato il progetto java è necessario collegare la libreria rappresentata dal file jar del proxy proxyJamio-v.4.4.jar e dunque aggiungerla al progetto.
Di seguito il codice delle classi java in cui, per consentirne il funzionamento, occorre valorizzare i parametri e le credenziali.
Il codice e il progetto da noi utilizzati sono disponibili nel file PublishEventClient.jar.
Classe TestEvent.java
package jamio.client;
import java.util.ArrayList;
import java.util.Date;
import javax.xml.ws.BindingProvider;
import com.openworkbpm.schema.CustomEvent;
import com.openworkbpm.schema.Fields;
import com.openworkbpm.schema.Fields.Item;
import com.openworkbpm.schema.NamedReference;
import com.openworkbpm.schema.ObjectFactory;
import com.openworkbpm.schema.RequestInfo;
import com.openworkbpm.schema.ResultInfo;
import com.openworkbpm.schema.ServiceResult;
import com.openworkbpm.schema.ServiceResultOfLoginInfo;
import com.openworkbpm.schema.ServiceResultOfboolean;
import com.openworkbpm.schema.event_application.IEventManagement;
import com.openworkbpm.schema.event_application.IEventManagementbasicHttpBindingGateway;
import com.openworkbpm.schema.session_application.ISessionManagement;
import com.openworkbpm.schema.session_application.ISessionManagementbasicHttpBindingGateway;
public class PublishEvent {
// Factory per l'inizializzazione degli oggetti
private ObjectFactory factory = new ObjectFactory();
// Proxy per l'applicazione di gestione dell'autenticazione
private ISessionManagement sessionManagement;
// Proxy per l'applicazione di gestione degli eventi
private IEventManagement eventManagement;
/****************** PARAMETRI DI CONFIGURAZIONE *****************/
// Host o indirizzo ip del server Jamio
private String host = "paas.jamio.com";
// URL dell'applicazione di gestione dell'autenticazione
private String sessionUrl = "http://" + host + "/Gateway/Gateway/ISessionManagement";
// URL dell'applicazione Event
private String eventUrl = "http://" + host + "/Gateway/Gateway/IEventManagement";
// Username di autenticazione
private String userName = <>;
// Password di autenticazione
private String password = <>;
// Nome del repository di autenticazione
private String identityRepository = <>;
private static String dataRepoID = <>;
private static String eventModelURL= <>;
private static String eventModelNAME= "TestEvent";
/****************** FINE PARAMETRI DI CONFIGURAZIONE *****************/
/**
* Inizializza i proxy.
*/
public PublishEvent() {
ISessionManagementbasicHttpBindingGateway sessionGateway = new ISessionManagementbasicHttpBindingGateway();
sessionManagement = sessionGateway.getBasicHttpBindingGatewayISessionManagement();
((BindingProvider) sessionManagement).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, sessionUrl);
IEventManagementbasicHttpBindingGateway eventGateway = new IEventManagementbasicHttpBindingGateway();
eventManagement = eventGateway.getBasicHttpBindingGatewayIEventManagement();
((BindingProvider) eventManagement).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, eventUrl);
}
private RequestInfo login() throws Exception {
// Autenticazione
ServiceResultOfLoginInfo loginInfo = sessionManagement.login(identityRepository, userName, password, false, "");
checkServiceResultError(loginInfo);
RequestInfo info = factory.createRequestInfo();
String token = loginInfo.getValue().getToken();
info.setToken(token);
System.out.println("Token:" + token);
return info;
}
private void logout(RequestInfo info) throws Exception {
if (sessionManagement != null && info != null) {
ServiceResult response = sessionManagement.closeSession(info);
checkServiceResultError(response);
}
}
public boolean sendEvent(RequestInfo info) throws Exception {
//creazione dell’oggetto Evento
CustomEvent eventToPublish = new CustomEvent();
eventToPublish.setModelReference(new NamedReference());
Date dateNow = new Date();
//i valori del name e del url rappresentano il modello di Evento Jamio che deve essere pubblicato
eventToPublish.getModelReference().setUrl(eventModelURL);
eventToPublish.getModelReference().setName(eventModelNAME);
//valorizzazione dei campi custom dell’evento
Fields fields = new Fields();
Item item = new Item();
ArrayList<Item> itemList= new ArrayList<Item>(4);
item.setKey("campo stringa");
item.setVal("abcd");
itemList.add(0,item);
item = new Item();
item.setKey("campo numerico");
item.setVal(2);
itemList.add(1,item);
item = new Item();
item.setKey("campo booleano");
item.setVal(true);
itemList.add(2,item);
item = new Item();
item.setKey("campo data");
item.setVal(dateNow);
itemList.add(3,item);
fields.getItem().addAll(itemList);
eventToPublish.setFields(fields) ;
//invocazione del servizio
ServiceResultOfboolean eventResult = eventManagement.publishEvent(dataRepoID, eventToPublish, info);
if (!eventResult.isError()){
System.out.println("PublishEvent: OK");
}
else
{
System.out.println("PublishEvent: KO. " + eventResult.getResultInfoList().getResultInfo().get(0).getMessage());
}
System.out.println("Logout...");
return eventResult.isError();
}
private void checkServiceResultError(ServiceResult response) throws Exception {
// Verifica dell'errore
if (response.isError()) {
StringBuffer buf = new StringBuffer();
// Ogni elemento di tipo ResultInfo contiene le informazioni del
// server relative all'evento verificatosi
for (ResultInfo resultInfo : response.getResultInfoList().getResultInfo()) {
buf.append(resultInfo.getMessage()).append(System.getProperty("line.separator"));
}
throw new Exception("Service Exception: " + buf.toString());
}
}
public static void main(String[] args) {
PublishEvent jamio = new PublishEvent();
RequestInfo info = null;
try {
info = jamio.login();
if(!jamio.sendEvent(info)){
System.out.println("Send ok!");
} else{
System.out.println("Error send....");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
jamio.logout(info);
} catch (Exception e) {
e.printStackTrace();
}
}}}
Classe TestEventDataSet.java
package jamio.client;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import javax.xml.ws.BindingProvider;
import com.openworkbpm.schema.CustomEvent;
import com.openworkbpm.schema.DataSetValue;
import com.openworkbpm.schema.Fields;
import com.openworkbpm.schema.Fields.Item;
import com.openworkbpm.schema.NamedReference;
import com.openworkbpm.schema.ObjectFactory;
import com.openworkbpm.schema.RequestInfo;
import com.openworkbpm.schema.ResultInfo;
import com.openworkbpm.schema.ServiceResult;
import com.openworkbpm.schema.ServiceResultOfLoginInfo;
import com.openworkbpm.schema.ServiceResultOfboolean;
import com.openworkbpm.schema.Types;
import com.openworkbpm.schema.event_application.IEventManagement;
import com.openworkbpm.schema.event_application.IEventManagementbasicHttpBindingGateway;
import com.openworkbpm.schema.session_application.ISessionManagement;
import com.openworkbpm.schema.session_application.ISessionManagementbasicHttpBindingGateway;
public class TestEventDataSet {
// Factory per l'inizializzazione degli oggetti
private ObjectFactory factory = new ObjectFactory();
// Proxy per l'applicazione di gestione dell'autenticazione
private ISessionManagement sessionManagement;
// Proxy per l'applicazione di gestione degli eventi
private IEventManagement eventManagement;
/****************** PARAMETRI DI CONFIGURAZIONE *****************/
// Host o indirizzo ip del server Jamio
private String host = "paas.jamio.com";
// URL dell'applicazione di gestione dell'autenticazione
private String sessionUrl = "http://" + host + "/Gateway/Gateway/ISessionManagement";
// URL dell'applicazione Event
private String eventUrl = "http://" + host + "/Gateway/Gateway/IEventManagement";
// Username di autenticazione
private String userName = "";
// Password di autenticazione
private String password = "";
//Nome del repository di autenticazione
private String identityRepository = "";
private static String dataRepoID = "";
private static String eventModelURL= "";
private static String eventModelNAME= "TestEventDataSet";
/****************** FINE PARAMETRI DI CONFIGURAZIONE *****************/
/**
* Inizializza i proxy.
*/
public TestEventDataSet() {
ISessionManagementbasicHttpBindingGateway sessionGateway = new ISessionManagementbasicHttpBindingGateway();
sessionManagement = sessionGateway.getBasicHttpBindingGatewayISessionManagement();
((BindingProvider) sessionManagement).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, sessionUrl);
IEventManagementbasicHttpBindingGateway eventGateway = new IEventManagementbasicHttpBindingGateway();
eventManagement = eventGateway.getBasicHttpBindingGatewayIEventManagement();
((BindingProvider) eventManagement).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, eventUrl);
}
private RequestInfo login() throws Exception {
// Autenticazione
ServiceResultOfLoginInfo loginInfo = sessionManagement.login(identityRepository, userName, password, false, "");
checkServiceResultError(loginInfo);
RequestInfo info = factory.createRequestInfo();
String token = loginInfo.getValue().getToken();
info.setToken(token);
System.out.println("Token:" + token);
return info;
}
private void logout(RequestInfo info) throws Exception {
if (sessionManagement != null && info != null) {
ServiceResult response = sessionManagement.closeSession(info);
checkServiceResultError(response);
}
}
/*public boolean sendMessage(RequestInfo info) throws Exception {
ServiceResultOfData dataResponse = dataManagement.read(dataRepoID, dataID, info);
Data dataobj = new Data();
for(int i = 0; i < dataResponse.getResultInfoList().getResultInfo().size(); i++) {
dataobj.setCreated(dataResponse.getValue().getCreated());
dataobj.setDescription(dataResponse.getValue().getDescription());
dataobj.setId(dataResponse.getValue().getId());
dataobj.setModelReference(dataResponse.getValue().getModelReference());
dataobj.setName(dataResponse.getValue().getName());
dataobj.setRepositoryId(dataResponse.getValue().getRepositoryId());
dataResponse.setValue(dataobj);
System.out.println("Data " + dataobj.getDescription() + dataobj.getId() + dataobj.getName() + dataobj.getRepositoryId());
}
return dataResponse.isError();
}*/
public boolean sendEvent(RequestInfo info) throws Exception {
//creazione dell’oggetto Evento
CustomEvent eventToPublish = new CustomEvent();
Types types = null;
eventToPublish.setModelReference(new NamedReference());
Date dateNow = new Date();
//i valori del name e del url rappresentano il modello di Evento Jamio che deve essere pubblicato
eventToPublish.getModelReference().setUrl(eventModelURL);
eventToPublish.getModelReference().setName(eventModelNAME);
eventToPublish.getModelReference().setType(types.CUSTOM_EVENT);
//valorizzazione dei campi custom dell’evento
Fields fields = new Fields();
Item item = new Item();
ArrayList<Item> itemList= new ArrayList<Item>(5);
ArrayList<Item> itemListDataSet= new ArrayList<Item>(6);
item = new Item();
item.setKey("booleano");
item.setVal(true);
itemListDataSet.add(0,item);
item = new Item();
item.setKey("float");
item.setVal(1.2);
itemListDataSet.add(1,item);
item = new Item();
item.setKey("dataeora");
item.setVal(dateNow);
itemListDataSet.add(2,item);
item = new Item();
item.setKey("testo");
item.setVal("testodataset");
itemListDataSet.add(3,item);
item = new Item();
item.setKey("decimale");
item.setVal(new BigDecimal(1.22));
itemListDataSet.add(4,item);
item = new Item();
item.setKey("intero");
item.setVal(new Long(10) );
itemListDataSet.add(5,item);
fields.getItem().addAll(itemListDataSet);
DataSetValue dataSet = new DataSetValue();
dataSet.setFields(fields);
itemList=new ArrayList<Fields.Item>();
item = new Item();
item.setKey("campo stringa");
item.setVal("abcd") ;
itemList.add(0,item);
item = new Item();
item.setKey("campo numerico");
item.setVal(2);
itemList.add(1,item);
item = new Item();
item.setKey("campo booleano");
item.setVal(true);
itemList.add(2,item);
item = new Item();
item.setKey("campo data");
item.setVal(dateNow);
itemList.add(3,item);
item=new Item();
item.setKey("campo dataset");
item.setVal(dataSet);
itemList.add(4,item);
fields=new Fields();
fields.getItem().addAll(itemList);
eventToPublish.setFields(fields) ;
//invocazione del servizio
ServiceResultOfboolean eventResult = eventManagement.publishEvent(dataRepoID, eventToPublish, info);
if (!eventResult.isError())
{
System.out.println("PublishEvent: OK");
}
else
{
System.out.println("PublishEvent: KO. " + eventResult.getResultInfoList().getResultInfo().get(0).getMessage());
}
System.out.println("Logout...");
return eventResult.isError();
}
private void checkServiceResultError(ServiceResult response) throws Exception {
// Verifica dell'errore
if (response.isError()) {
StringBuffer buf = new StringBuffer();
// Ogni elemento di tipo ResultInfo contiene le informazioni del server relative all'evento verificatosi
for (ResultInfo resultInfo : response.getResultInfoList().getResultInfo()) {
buf.append(resultInfo.getMessage()).append(System.getProperty("line.separator"));
}
throw new Exception("Service Exception: " + buf.toString());
}
}
public static void main(String[] args) {
TestEventDataSet jamio = new TestEventDataSet();
RequestInfo info = null;
try {
info = jamio.login();
if(!jamio.sendEvent(info)){
System.out.println("Send ok!");
} else{
System.out.println("Error send....");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
jamio.logout(info);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Classe TestEventArrays.java
package jamio.client;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import javax.xml.ws.BindingProvider;
import com.openworkbpm.schema.ArrayValue;
import com.openworkbpm.schema.CustomEvent;
import com.openworkbpm.schema.DataSetValue;
import com.openworkbpm.schema.Fields;
import com.openworkbpm.schema.Fields.Item;
import com.openworkbpm.schema.NamedReference;
import com.openworkbpm.schema.ObjectFactory;
import com.openworkbpm.schema.RequestInfo;
import com.openworkbpm.schema.ResultInfo;
import com.openworkbpm.schema.SerializableListOfanyType;
import com.openworkbpm.schema.ServiceResult;
import com.openworkbpm.schema.ServiceResultOfLoginInfo;
import com.openworkbpm.schema.ServiceResultOfboolean;
import com.openworkbpm.schema.Types;
import com.openworkbpm.schema.event_application.IEventManagement;
import com.openworkbpm.schema.event_application.IEventManagementbasicHttpBindingGateway;
import com.openworkbpm.schema.session_application.ISessionManagement;
import com.openworkbpm.schema.session_application.ISessionManagementbasicHttpBindingGateway;
public class TestEventArrays {
// Factory per l'inizializzazione degli oggetti
private ObjectFactory factory = new ObjectFactory();
// Proxy per l'applicazione di gestione dell'autenticazione
private ISessionManagement sessionManagement;
// Proxy per l'applicazione di gestione degli eventi
private IEventManagement eventManagement;
/****************** PARAMETRI DI CONFIGURAZIONE *****************/
// Host o indirizzo ip del server Jamio
private String host = "paas.jamio.com";
// URL dell'applicazione di gestione dell'autenticazione
private String sessionUrl = "http://" + host + "/Gateway/Gateway/ISessionManagement";
// URL dell'applicazione Event
private String eventUrl = "http://" + host + "/Gateway/Gateway/IEventManagement";
// Username di autenticazione
private String userName = "";
// Password di autenticazione
private String password = "";
//Nome del repository di autenticazione
private String identityRepository = "";
private static String dataRepoID = "";
//private static String eventModelURL= "";
private static String eventModelURL= "";
private static String eventModelNAME= "TestEventArrays";
/****************** FINE PARAMETRI DI CONFIGURAZIONE *****************/
/**
* Inizializza i proxy.
*/
public TestEventArrays() {
ISessionManagementbasicHttpBindingGateway sessionGateway = new ISessionManagementbasicHttpBindingGateway();
sessionManagement = sessionGateway.getBasicHttpBindingGatewayISessionManagement();
((BindingProvider) sessionManagement).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, sessionUrl);
IEventManagementbasicHttpBindingGateway eventGateway = new IEventManagementbasicHttpBindingGateway();
eventManagement = eventGateway.getBasicHttpBindingGatewayIEventManagement();
((BindingProvider) eventManagement).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, eventUrl);
}
private RequestInfo login() throws Exception {
// Autenticazione
ServiceResultOfLoginInfo loginInfo = sessionManagement.login(identityRepository, userName, password, false, "");
checkServiceResultError(loginInfo);
RequestInfo info = factory.createRequestInfo();
String token = loginInfo.getValue().getToken();
info.setToken(token);
System.out.println("Token:" + token);
return info;
}
private void logout(RequestInfo info) throws Exception {
if (sessionManagement != null && info != null) {
ServiceResult response = sessionManagement.closeSession(info);
checkServiceResultError(response);
}
}
/*public boolean sendMessage(RequestInfo info) throws Exception {
ServiceResultOfData dataResponse = dataManagement.read(dataRepoID, dataID, info);
Data dataobj = new Data();
for(int i = 0; i < dataResponse.getResultInfoList().getResultInfo().size(); i++) {
dataobj.setCreated(dataResponse.getValue().getCreated());
dataobj.setDescription(dataResponse.getValue().getDescription());
dataobj.setId(dataResponse.getValue().getId());
dataobj.setModelReference(dataResponse.getValue().getModelReference());
dataobj.setName(dataResponse.getValue().getName());
dataobj.setRepositoryId(dataResponse.getValue().getRepositoryId());
dataResponse.setValue(dataobj);
System.out.println("Data " + dataobj.getDescription() + dataobj.getId() + dataobj.getName() + dataobj.getRepositoryId());
}
return dataResponse.isError();
}*/
public boolean sendEvent(RequestInfo info) throws Exception {
//creazione dell’oggetto Evento
CustomEvent eventToPublish = new CustomEvent();
Types types;
eventToPublish.setModelReference(new NamedReference());
Date dateNow = new Date();
//i valori del name e del url rappresentano il modello di Evento Jamio che deve essere pubblicato
eventToPublish.getModelReference().setUrl(eventModelURL);
eventToPublish.getModelReference().setName(eventModelNAME);
eventToPublish.getModelReference().setType(Types.CUSTOM_EVENT);
//valorizzazione dei campi custom dell’evento
Fields fields = new Fields();
Item item = new Item();
ArrayList<Item> itemList= new ArrayList<Item>(4);
ArrayList<Item> itemListdataSet = new ArrayList<Item>(6);
item = new Item();
item.setKey("booleano");
item.setVal(true);
itemListdataSet.add(0,item);
item = new Item();
item.setKey("float");
item.setVal(1.2);
itemListdataSet.add(1,item);
item = new Item();
item.setKey("dataeora");
item.setVal(dateNow);
itemListdataSet.add(2,item);
item = new Item();
item.setKey("testo");
item.setVal("testodataset");
itemListdataSet.add(3,item);
item = new Item();
item.setKey("decimale");
item.setVal(new BigDecimal(1.22));
itemListdataSet.add(4,item);
item = new Item();
item.setKey("intero");
item.setVal(new Long(10) );
itemListdataSet.add(5,item);
fields.getItem().addAll(itemListdataSet);
DataSetValue dataSet = new DataSetValue();
SerializableListOfanyType listString = new SerializableListOfanyType();
SerializableListOfanyType listObjDataSet = new SerializableListOfanyType();
SerializableListOfanyType listInteger = new SerializableListOfanyType();
SerializableListOfanyType listBoolean = new SerializableListOfanyType();
SerializableListOfanyType listDate = new SerializableListOfanyType();
ArrayValue datasetArrayValue = new ArrayValue();
ArrayValue stringArrayValue = new ArrayValue();
ArrayValue boolArrayValue = new ArrayValue();
ArrayValue dateArrayValue = new ArrayValue();
ArrayValue intArrayValue = new ArrayValue();
dataSet.setFields(fields);
listString.getItem().add("acde");
listObjDataSet.getItem().add(dataSet);
listInteger.getItem().add(10);
listBoolean.getItem().add(true);
listDate.getItem().add(dateNow);
datasetArrayValue.setElements(listObjDataSet);
stringArrayValue.setElements(listString);
boolArrayValue.setElements(listBoolean);
dateArrayValue.setElements(listDate);
intArrayValue.setElements(listInteger);
item = new Item();
item.setKey("campo stringa");
item.setVal(stringArrayValue) ;
itemList.add(0,item);
item = new Item();
item.setKey("campo numerico");
item.setVal(intArrayValue);
itemList.add(1,item);
item = new Item();
item.setKey("campo booleano");
item.setVal(boolArrayValue);
itemList.add(2,item);
item = new Item();
item.setKey("campo data");
item.setVal(dateArrayValue);
itemList.add(3,item);
item=new Item();
item.setKey("campo dataset");
item.setVal(datasetArrayValue);
itemList.add(4,item);
fields=new Fields();
fields.getItem().addAll(itemList);
eventToPublish.setFields(fields) ;
//invocazione del servizio
ServiceResultOfboolean eventResult = eventManagement.publishEvent(dataRepoID, eventToPublish, info);
if (!eventResult.isError())
{
System.out.println("PublishEvent: OK");
}
else
{
System.out.println("PublishEvent: KO. " + eventResult.getResultInfoList().getResultInfo().get(0).getMessage());
}
System.out.println("Logout...");
return eventResult.isError();
}
private void checkServiceResultError(ServiceResult response) throws Exception {
// Verifica dell'errore
if (response.isError()) {
StringBuffer buf = new StringBuffer();
// Ogni elemento di tipo ResultInfo contiene le informazioni del server relative all'evento verificatosi
for (ResultInfo resultInfo : response.getResultInfoList().getResultInfo()) {
buf.append(resultInfo.getMessage()).append(System.getProperty("line.separator"));
}
throw new Exception("Service Exception: " + buf.toString());
}
}
public static void main(String[] args) {
TestEventArrays jamio = new TestEventArrays();
RequestInfo info = null;
try {
info = jamio.login();
if(!jamio.sendEvent(info)){
System.out.println("Send ok!");
} else{
System.out.println("Error send....");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
jamio.logout(info);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Classe TestEventReference.java
package jamio.client;
import java.util.ArrayList;
import java.util.Date;
import javax.xml.ws.BindingProvider;
import com.openworkbpm.schema.CatalogItemValue;
import com.openworkbpm.schema.CustomEvent;
import com.openworkbpm.schema.DataSetValue;
import com.openworkbpm.schema.Fields;
import com.openworkbpm.schema.Fields.Item;
import com.openworkbpm.schema.NamedReference;
import com.openworkbpm.schema.ObjectFactory;
import com.openworkbpm.schema.RequestInfo;
import com.openworkbpm.schema.ResultInfo;
import com.openworkbpm.schema.ServiceResult;
import com.openworkbpm.schema.ServiceResultOfLoginInfo;
import com.openworkbpm.schema.ServiceResultOfboolean;
import com.openworkbpm.schema.Types;
import com.openworkbpm.schema.event_application.IEventManagement;
import com.openworkbpm.schema.event_application.IEventManagementbasicHttpBindingGateway;
import com.openworkbpm.schema.session_application.ISessionManagement;
import com.openworkbpm.schema.session_application.ISessionManagementbasicHttpBindingGateway;
public class TestEventReference {
// Factory per l'inizializzazione degli oggetti
private ObjectFactory factory = new ObjectFactory();
// Proxy per l'applicazione di gestione dell'autenticazione
private ISessionManagement sessionManagement;
// Proxy per l'applicazione di gestione degli eventi
private IEventManagement eventManagement;
/****************** PARAMETRI DI CONFIGURAZIONE *****************/
// Host o indirizzo ip del server Jamio
private String host = " paas.jamio.com ";
// URL dell'applicazione di gestione dell'autenticazione
private String sessionUrl = "http://" + host + "/Gateway/Gateway/ISessionManagement";
// URL dell'applicazione Event
private String eventUrl = "http://" + host + "/Gateway/Gateway/IEventManagement";
// Username di autenticazione
private String userName = "";
// Password di autenticazione
private String password = "";
//Nome del repository di autenticazione
private String identityRepository = "";
private static String dataRepoID = "";
private static String eventModelURL= "";
private static String eventModelNAME= "TestEventReference";
/****************** FINE PARAMETRI DI CONFIGURAZIONE *****************/
/**
* Inizializza i proxy.
*/
public TestEventReference() {
ISessionManagementbasicHttpBindingGateway sessionGateway = new ISessionManagementbasicHttpBindingGateway();
sessionManagement = sessionGateway.getBasicHttpBindingGatewayISessionManagement();
((BindingProvider) sessionManagement).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, sessionUrl);
IEventManagementbasicHttpBindingGateway eventGateway = new IEventManagementbasicHttpBindingGateway();
eventManagement = eventGateway.getBasicHttpBindingGatewayIEventManagement();
((BindingProvider) eventManagement).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, eventUrl);
}
private RequestInfo login() throws Exception {
// Autenticazione
ServiceResultOfLoginInfo loginInfo = sessionManagement.login(identityRepository, userName, password, false, "");
checkServiceResultError(loginInfo);
RequestInfo info = factory.createRequestInfo();
String token = loginInfo.getValue().getToken();
info.setToken(token);
System.out.println("Token:" + token);
return info;
}
private void logout(RequestInfo info) throws Exception {
if (sessionManagement != null && info != null) {
ServiceResult response = sessionManagement.closeSession(info);
checkServiceResultError(response);
}
}
/*public boolean sendMessage(RequestInfo info) throws Exception {
ServiceResultOfData dataResponse = dataManagement.read(dataRepoID, dataID, info);
Data dataobj = new Data();
for(int i = 0; i < dataResponse.getResultInfoList().getResultInfo().size(); i++) {
dataobj.setCreated(dataResponse.getValue().getCreated());
dataobj.setDescription(dataResponse.getValue().getDescription());
dataobj.setId(dataResponse.getValue().getId());
dataobj.setModelReference(dataResponse.getValue().getModelReference());
dataobj.setName(dataResponse.getValue().getName());
dataobj.setRepositoryId(dataResponse.getValue().getRepositoryId());
dataResponse.setValue(dataobj);
System.out.println("Data " + dataobj.getDescription() + dataobj.getId() + dataobj.getName() + dataobj.getRepositoryId());
}
return dataResponse.isError();
}*/
public boolean sendEvent(RequestInfo info) throws Exception {
//creazione dell’oggetto Evento
CustomEvent eventToPublish = new CustomEvent();
Types types;
eventToPublish.setModelReference(new NamedReference());
Date dateNow = new Date();
//i valori del name e del url rappresentano il modello di Evento Jamio che deve essere pubblicato
eventToPublish.getModelReference().setUrl(eventModelURL);
eventToPublish.getModelReference().setName(eventModelNAME);
eventToPublish.getModelReference().setType(Types.CUSTOM_EVENT);
//valorizzazione dei campi custom dell’evento
Fields fields = new Fields();
Item item = new Item();
ArrayList<Item> itemList= new ArrayList<Item>(4);
ArrayList<Item> itemListExt = new ArrayList<Item>(6);
item = new Item();
item.setKey("booleano");
item.setVal(true);
itemListExt.add(0,item);
fields.getItem().addAll(itemListExt);
DataSetValue dataSet = new DataSetValue();
NamedReference ref = new NamedReference();
CatalogItemValue extRef = new CatalogItemValue();
ref.setName("Collegamento");
extRef.setFields(fields);
dataSet.setFields(fields);
item = new Item();
item.setKey("campo collegamento");
item.setVal(ref) ;
itemList.add(0,item);
item = new Item();
item.setKey("campo esteso");
item.setVal(extRef);
itemList.add(1,item);
fields=new Fields();
fields.getItem().addAll(itemList);
eventToPublish.setFields(fields) ;
//invocazione del servizio
ServiceResultOfboolean eventResult = eventManagement.publishEvent(dataRepoID, eventToPublish, info);
if (!eventResult.isError())
{
System.out.println("PublishEvent: OK");
}
else
{
System.out.println("PublishEvent: KO. " + eventResult.getResultInfoList().getResultInfo().get(0).getMessage());
}
System.out.println("Logout...");
return eventResult.isError();
}
private void checkServiceResultError(ServiceResult response) throws Exception {
// Verifica dell'errore
if (response.isError()) {
StringBuffer buf = new StringBuffer();
// Ogni elemento di tipo ResultInfo contiene le informazioni del server relative all'evento verificatosi
for (ResultInfo resultInfo : response.getResultInfoList().getResultInfo()) {
buf.append(resultInfo.getMessage()).append(System.getProperty("line.separator"));
}
throw new Exception("Service Exception: " + buf.toString());
}
}
public static void main(String[] args) {
TestEventReference jamio = new TestEventReference();
RequestInfo info = null;
try {
info = jamio.login();
if(!jamio.sendEvent(info)){
System.out.println("Send ok!");
} else{
System.out.println("Error send....");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
jamio.logout(info);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}