Erweiterungen importieren
Eine Erweiterung ist ein ZIP-Archiv bestehend aus Erweiterungsdateien und einer Metadatendatei. Um den Inhalt einer Erweiterung in ThingWorx zu installieren, muss die ZIP-Datei importiert werden. Sie können mehrere Erweiterungen gleichzeitig importieren, indem Sie alle Erweiterungs-ZIP-Dateien zusammen in einem ZIP-Ordner packen.
Import von Erweiterungen aktivieren
Der Import von Erweiterungen ist standardmäßig für alle Benutzer deaktiviert, kann aber durch Konfiguration der Datei platform-settings.json aktiviert werden:
1. Öffnen Sie die Datei platform-settings.json. Standardmäßig befindet sich die Datei im Ordner ThingworxPlatform.
2. Fügen Sie die folgenden ExtensionPackageImportPolicy-Parameter hinzu oder aktualisieren Sie sie auf true, um den Import von Erweiterungen zuzulassen. Optimale Vorgehensweisen zur Konfiguration finden Sie im Abschnitt unten.
* 
Alle Parameter sind standardmäßig auf "falsch" festgelegt. Weitere Informationen zu den einzelnen Parametern finden Sie unter platform-settings.json.
"ExtensionPackageImportPolicy": {
"importEnabled": false,
"allowJarResources": false,
"allowJavascriptResources": false,
"allowCSSResources": false,
"allowJSONResources": false,
"allowWebAppResources": false,
"allowEntities": false,
"allowExtensibleEntities": false
},
3. Speichern und schließen Sie die Datei platform-settings.json.
Optimale Vorgehensweisen für die Steuerung des Imports von Erweiterungen
Wählen Sie einen iterativen Ansatz, wenn Sie die Parameter in der ExtensionPackageImportPolicy konfigurieren, um den Import von Erweiterungen mit einer minimalen Anzahl von Parametern zu steuern. Alle Parameter sind standardmäßig auf "falsch" festgelegt.
1. Legen Sie den Parameter importEnabled auf wahr fest, und importieren Sie die Erweiterung.
2. Wenn der Import fehlschlägt, legen Sie den Parameter allowEntities auf wahr fest, und importieren Sie die Erweiterung.
3. Wenn der Import fehlschlägt, legen Sie den Parameter allowExtensibleEntites auf wahr fest, und importieren Sie die Erweiterung.
4. Wenn der Import fehlschlägt, legen Sie die entsprechenden allow<Content>Resources-Parameter fest (z.B. allowJarResources). Ressourcen werden in der Datei metadata.xml der Erweiterung angegeben.
5. Ändern Sie nach dem erfolgreichen Import alle Parameter zurück auf "falsch".
6. Starten Sie die Plattform neu, um den Import von Erweiterungen zu deaktivieren.
Erweiterung importieren
Führen Sie die nachfolgenden Schritte aus, um eine Erweiterung zu importieren:
1. Klicken Sie in Composer auf Importieren/Exportieren > Importieren.
2. Wählen Sie in der Dropdown-Liste Importoption die Option Erweiterung aus.
3. Navigieren Sie zu Ihrem lokalen Verzeichnis, um eine Erweiterungs-ZIP-Datei auszuwählen, und klicken Sie auf Öffnen.
4. Klicken Sie auf Validieren, und klicken Sie dann auf Importieren.
5. Klicken Sie auf Schließen, um das Dialogfenster Importieren zu schließen.
Die importierten Erweiterungsdateien werden auf dem Dashboard angezeigt.
Versionserweiterungen
Mit dem Attribut dependsOn des Elements ExtensionPackage können Sie durch Kommas getrennte Name/Version-Paare für Erweiterungen angeben. Das Format ist Name:Hauptversionsnummer.Nebenversionsnummer.Patch-Nummer (beispielsweise ErweiterungA:1.0.0) und wird in der Abhängigkeitsprüfung verwendet.
Java-gestützte Erweiterungen aktualisieren
Wenn Sie versuchen, eine Java-gestützte Erweiterung zu aktualisieren, indem Sie eine neue Version importieren, wird eine Informationsmeldung angezeigt, die besagt, dass Sie die Plattform neu starten müssen. Wenn dies geschieht, wird die Erweiterungs-ZIP-Datei in einer Warteschlange platziert: /ThingworxStorage/extensions/upgradequeue. Nachdem Sie den Apache Tomcat-Server neu gestartet haben, versucht ThingWorx, die Erweiterungs-ZIP-Datei in die Warteschlange zu importieren. Wenn ein Import einer Erweiterung in der Warteschlange fehlschlägt, müssen Sie den Server erneut starten, um die vorherige Version der Erweiterung wiederherzustellen. Nachdem ThingWorx versucht hat, Erweiterungen in der Warteschlange zu importieren, wird die Warteschlange bereinigt, selbst wenn der Import einer Erweiterung in der Warteschlange fehlschlägt.
Sie müssen nicht nach jedem Import einer Java-gestützten Erweiterung einen Neustart durchführen. Mehrere zu importierende Erweiterungen können in eine Warteschlange gestellt werden. Sie werden dann alle nach einem einzigen Neustart in der jeweils korrekten Reihenfolge importiert, basierend auf ihren Abhängigkeiten. Weitere Informationen zur Einrichtung von Abhängigkeiten finden Sie im englischsprachigen Handbuch Extension Development Guide (Handbuch Erweiterungsentwicklung).
* 
Nicht-Java-Erweiterungen können normalerweise importiert werden, ohne dass ein Neustart erforderlich ist. Es gibt jedoch Ausnahmen, was die folgenden Szenarien betrifft:
Ist eine Nicht-Java-Erweiterung Teil einer gezippten Datei von Zip-Dateien, die eine zu aktualisierende Java-Erweiterung enthält, so wird die gesamte gezippte Datei von Zip-Dateien in die Warteschleife gestellt und nach dem Neustart importiert.
Wird eine Nicht-Java-Erweiterung importiert (für eine erstmalige Installation oder ein Upgrade) und diese Erweiterung ist von einer Erweiterung in der Warteschleife abhängig, so wird die Nicht-Java-Erweiterung ebenfalls in die Warteschleife gestellt.
Häufige Ergebnismeldungen bei Erweiterungsimporten
Die folgenden Informationsmeldungen und Warnungen werden häufig während Erweiterungsimporten angezeigt:
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.
Jedes Mal, wenn Sie eine Erweiterung mit einer JAR-Datei importieren, informiert Sie diese Meldung, dass Sie den Server zum Abschließen des Imports neu starten müssen.
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 erlaubt keine Änderungen an der Basis-Dingvorlage einer Entität. Diese Warnung wird während Erweiterungsimports angezeigt, sobald die gemeldete Dingvorlage nicht auf Änderungen an ihrer Basis-Dingvorlage überprüft werden kann.
Nach dem Neustart der Plattform
Prüfen Sie nach dem Neustart die Anwendungsprotokolle, um sich zu vergewissern, dass die in die Warteschlange gestellten Erweiterungen erfolgreich importiert wurden. Im Anwendungsprotokoll sollte für jede aus der Warteschlange importierte Erweiterung Folgendes vermerkt sein:
Starting entity import of /ThingworxStorage/extensions/XSS_Test/metadata.xml
Wenn die Importe aus der Warteschlange erfolgreich abgeschlossen wurden, wird die folgende Meldung angezeigt:
*** Import completed successfully
Gab es Probleme, werden die folgenden Fehler angezeigt:
Error occurred while installing Extensions from upgrade queue
* 
Wenn der Import aus der Warteschlange aufgrund von Problemen fehlschlägt, müssen Sie das System nochmals neu starten, um eine Zurücksetzung auf die Vorgängerversion der jeweiligen Erweiterungen durchzuführen.
Fehlermeldungen des Imports von Erweiterungen analysieren
Wenn der Import einer Erweiterung fehlschlägt, werden im Anwendungsprotokoll Meldungen ausgegeben. In ihnen wird im Allgemeinen angegeben, dass der Import der Erweiterung fehlgeschlagen ist, und auf das Fehlerprotokoll verwiesen wird. In der Datei ErrorLog.log wird am Ende der Fehlermeldung für den fehlgeschlagenen Import der Grund angegeben, warum das importierte Erweiterungspaket fehlgeschlagen ist. Beispiele für Fehler sind Import deaktiviert, JAR-Import nicht zulässig usw. Nutzen Sie diese Fehlermeldung, um die korrekten Konfigurationseinstellungen für die erfolgreiche Installation der Erweiterung anzupassen.
Protokollmeldung
Parameterkonfiguration in ExtensionPackageImportPolicy überprüfen
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
War dies hilfreich?