Importazione di estensioni
Un'estensione è un archivio zip costituito da file di estensione e un file di metadati. Per installare il contenuto di un'estensione in ThingWorx, è necessario importare il file zip. È possibile importare più estensioni contemporaneamente raggruppando tutti i file zip di estensione in un'unica cartella zip.
Attivazione dell'importazione delle estensioni
L'importazione di estensioni è disattivata per default per tutti gli utenti. Per attivarla, configurare il file platform-settings.json.
1. Aprire il file platform-settings.json. Per default, il file si trova nella cartella ThingworxPlatform.
2. Aggiungere o aggiornare i parametri ExtensionPackageImportPolicy seguenti e impostarli su true per consentire l'importazione delle estensioni. Per le best practice sulla configurazione, vedere la sezione riportata di seguito.
* 
Tutti i parametri sono false per default. Per ulteriori informazioni su ciascun parametro, fare riferimento a platform-settings.json.
"ExtensionPackageImportPolicy": {
"importEnabled": false,
"allowJarResources": false,
"allowJavascriptResources": false,
"allowCSSResources": false,
"allowJSONResources": false,
"allowWebAppResources": false,
"allowEntities": false,
"allowExtensibleEntities": false
},
3. Salvare e chiudere il file platform-settings.json.
Best practice per il controllo dell'importazione delle estensioni
Adottare un approccio iterativo per configurare i parametri in ExtensionPackageImportPolicy e attivare il numero minimo di parametri per controllare l'importazione delle estensioni. Tutti i parametri sono false per default.
1. Impostare il parametro importEnabled su true e importare l'estensione.
2. Se l'importazione non riesce, impostare il parametro allowEntities su true e importare l'estensione.
3. Se l'importazione non riesce, impostare il parametro allowExtensibleEntites su true e importare l'estensione.
4. Se l'importazione non riesce, impostare i parametri allow<Content>Resources applicabili, ad esempio allowJarResources. Le risorse sono specificate nel file metadata.xml dell'estensione.
5. Dopo l'importazione reimpostare tutti i parametri su false.
6. Riavviare la piattaforma per disattivare l'importazione di eventuali estensioni.
Importazione di un'estensione
Per importare un'estensione, attenersi alla procedura descritta di seguito.
1. In Composer, fare clic su Importazione/Esportazione > Importazione.
2. Dall'elenco a discesa Opzione di importazione, selezionare Estensione.
3. Selezionare la directory locale per scegliere un file zip di estensione, quindi fare clic su Apri.
4. Fare clic su Convalida, quindi selezionare Importa.
5. Fare clic su Chiudi per chiudere la finestra di dialogo Importazione.
I file di estensione importati sono visualizzati nel dashboard.
Controllo delle versioni delle estensioni
Mediante l'utilizzo dell'attributo dependsOn dell'elemento ExtensionPackage, è possibile specificare coppie nome-versione separate da virgola per le estensioni. Il formato è nome:numero di release principale.numero di release secondaria.numero di patch (ad esempio EstensioneA:1.0.0) ed è utilizzato nel controllo della dipendenza.
Aggiornamento delle estensioni supportate da Java
Quando si prova ad aggiornare un'estensione con supporto Java importando una nuova versione, viene visualizzato un messaggio informativo che indica che è necessario riavviare la piattaforma. In questo caso, il file zip dell'estensione viene inserito in una coda: /ThingworxStorage/extensions/upgradequeue. Dopo aver riavviato il server Apache Tomcat, ThingWorx proverà a importare i file zip dell'estensione nella coda. Se l'importazione dell'estensione in coda non riesce, è necessario riavviare nuovamente il server per ripristinare la versione precedente dell'estensione. Dopo che ThingWorx prova a importare le estensioni in coda, la coda viene cancellata anche se un'importazione non riesce.
Non è necessario riavviare dopo ogni importazione di un'estensione supportata da Java. Nel caso di estensioni multiple, è possibile metterle in coda in modo che vengano importate nell'ordine appropriato in base alle rispettive dipendenze dopo un solo riavvio. Per ulteriori informazioni sulla configurazione delle dipendenze, vedere la Extension Development Guide.
* 
Le estensioni non Java verranno in genere importate senza richiedere alcun riavvio. Tuttavia, di seguito sono riportate delle eccezioni.
Se un'estensione non Java è inclusa in uno zip di file zip contenente un'estensione Java che viene aggiornata, l'intero zip di file zip verrà messo in coda e importato dopo il riavvio.
Se viene importata un'estensione non Java (per l'installazione iniziale o l'aggiornamento) e questa dipende da un'estensione in coda per l'aggiornamento, anche l'estensione non Java verrà accodata.
Messaggi comuni di risultato dell'importazione di estensioni
Di seguito sono presentati alcuni messaggi informativi e avvisi che vengono di solito visualizzati durante l'importazione di estensioni.
Info: Extension <extension-name> is queued for installation on the next server restart because it contains JAR files, and an older version of this extension is already installed.
Questo messaggio viene visualizzato ogni volta che si importa un'estensione con un JAR e informa che è necessario riavviare il server per completare l'importazione.
Warning: Extension <extension-name> skipped because it is already installed.
Warning: Extension Package <extension-name> may be trying to change the template of the following Entities: <entity: entity-name>
ThingWorx non supporta la modifica del modello di oggetto di base di un'entità. Questo avviso viene visualizzato durante l'importazione di estensioni quando il modello di oggetto segnalato non può essere ispezionato per determinare se il rispettivo modello di base è stato modificato o meno.
Dopo aver riavviato la piattaforma
Dopo il riavvio, controllare i log applicazioni per assicurarsi che l'importazione delle estensioni in coda riesca. Per ogni estensione in coda importata nel log applicazioni dovrebbe essere indicato:
Starting entity import of /ThingworxStorage/extensions/XSS_Test/metadata.xml
Se le importazioni accodate riescono, viene visualizzato il messaggio:
*** Import completed successfully
In caso di problemi viene visualizzato l'errore:
Error occurred while installing Extensions from upgrade queue
* 
Se i problemi hanno compromesso l'importazione in coda, riavviare nuovamente il sistema per ripristinare le versioni precedenti delle estensioni.
Analisi dei messaggi di errore di importazione delle estensioni
Se l'importazione di estensioni ha esito negativo, nel log applicazioni vengono visualizzati messaggi che indicano genericamente che l'importazione di estensioni non è riuscita e fanno riferimento al log degli errori per ulteriori dettagli. Nel file ErrorLog.log, alla fine del messaggio di errore generato per l'errore di importazione viene indicato il motivo per cui l'importazione del package estensione non è riuscita. L'errore può essere causato ad esempio dal fatto che l'importazione è disattivata, che l'importazione di file jar non è consentita e così via. Utilizzare questo errore per regolare le impostazioni di configurazione appropriate per installare correttamente l'estensione.
Messaggio log
Verificare la configurazione dei parametri in ExtensionPackageImportPolicy
ExtensionPackage upload attempted while import disabled
"importEnabled": true
ExtensionPackage<XYZ> upload attempted while allow jars is disabled
"allowJarResources": true
ExtensionPackage<XYZ> upload attempted while allow Javascript is disabled
"allowJavascriptResources": true
ExtensionPackage<XYZ> upload attempted while allow CSS is disabled
"allowCSSResources": true
ExtensionPackage<XYZ> upload attempted while allow JSON is disabled
"allowJSONResources": true
ExtensionPackage<XYZ> upload attempted while allow WebApp is disabled
"allowWebAppResources": true
ExtensionPackage<XYZ> upload attempted while allow entities is disabled
"allowEntities": true
ExtensionPackage<XYZ> upload attempted while allow extensible entities is disabled
"allowExtensibleEntities": true
È stato utile?