导入扩展
扩展是由扩展文件和元数据文件组成的 zip 存档。要将扩展内容安装到 ThingWorx,您需要导入 zip 文件。通过将所有扩展 zip 文件打包一起导入一个 zip 文件夹中,您可以同时导入多个扩展。
启用扩展导入
默认情况下,所有用户的扩展导入均处于禁用状态,但可通过配置 platform-settings.json 文件来予以启用:
1. 打开 platform-settings.json 文件。默认情况下,该文件位于 ThingworxPlatform 文件夹中。
2. 将以下 ExtensionPackageImportPolicy 参数添加至或更新为 true,以允许导入扩展。有关配置的最佳做法,请参阅以下部分。
* 
默认情况下,所有参数均为 false。有关各个参数的详细信息,请参阅 platform-settings.json
"ExtensionPackageImportPolicy": {
"importEnabled": false,
"allowJarResources": false,
"allowJavascriptResources": false,
"allowCSSResources": false,
"allowJSONResources": false,
"allowWebAppResources": false,
"allowEntities": false,
"allowExtensibleEntities": false
},
3. 保存并关闭 platform-settings.json 文件。
控制扩展导入的最佳做法
在配置 ExtensionPackageImportPolicy 中的参数时采用迭代方法,以启用最少数量的参数来控制扩展导入。默认情况下,所有参数均为 false。
1. importEnabled 参数设置为 true 并导入扩展。
2. 如果导入失败,请将 allowEntities 参数设置为 true,然后导入扩展。
3. 如果导入失败,请将 allowExtensibleEntites 参数设置为 true,然后导入扩展。
4. 如果导入失败,请设置合适的 allow<Content>Resources 参数 (例如 allowJarResources)。资源已在扩展的 metadata.xml 文件中指定。
5. 成功导入后,将所有参数改回 false。
6. 重新启动平台以禁止导入任何扩展。
导入扩展
要导入扩展,请按照以下步骤操作:
1. 在 Composer 中,单击“导入/导出” > “导入”
2. “导入选项”下拉列表中选择“扩展”
3. 浏览本地目录,选择一个扩展 zip 文件,然后单击“打开”
4. 单击“验证”,然后单击“导入”
5. 单击“关闭”可关闭“导入”对话框。
导入的扩展文件显示在仪表板上。
版本控制扩展
使用 ExtensionPackage 元素的 dependsOn 属性,可以为扩展指定以逗号分隔的名称版本对。格式为 name:major release number.minor release number.patch number (例如,ExtensionA:1.0.0) 并用于相关性检查。
升级支持 Java 的扩展
当您尝试通过导入新版本来升级支持 Java 的扩展时,会显示一条信息消息,告知您必须重新启动平台。这种情况下,扩展 zip 文件会被放入队列:/ThingworxStorage/extensions/upgradequeue。重新启动 Apache Tomcat 服务器后,ThingWorx 将尝试在队列中导入扩展 zip 文件。如果加入队列的扩展导入失败,则您必须再次重新启动服务器以还原扩展的先前版本。ThingWorx 尝试导入加入队列的扩展后,会清除队列,即使加入队列的扩展导入失败。
不必在每次导入 Java 支持的扩展后都重新启动。多个扩展可以排队等待导入,然后会在一次重新启动后基于其相关性以适当的顺序进行导入。有关设置相关性的详细信息,请参阅 扩展开发指南
* 
导入非 Java 扩展通常不需要任何重新启动操作。但是,以下情况例外:
如果非 Java 扩展是 zip 文件 (包含正在升级的 Java 扩展) 的 zip 的一部分,则重新启动后,由多个 zip 文件压缩而成的 zip 文件将加入队列并进行导入。
如果正在导入非 Java 扩展 (对于初始安装或升级),这取决于排队等待升级的扩展,非 Java 扩展也将加入队列。
常见扩展导入结果消息
以下是扩展导入期间常见的信息消息和警告:
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.
导入包含 JAR 的扩展时,您会收到此消息,告知您完成导入需要重新启动服务器。
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 不支持更改实体的基本事物模板。在扩展导入期间,当无法检查报告的事物模板以确定其基本事物模板是否已更改时,将显示此警告。
重新启动平台后
重新启动后,检查应用程序日志,以确保已成功导入队列中的扩展。您应在应用程序日志中查看每个正在导入的队列中扩展的的以下内容:
Starting entity import of /ThingworxStorage/extensions/XSS_Test/metadata.xml
如果已成功完成排队导入,则会显示以下消息:
*** Import completed successfully
若出现了问题,则会显示以下错误:
Error occurred while installing Extensions from upgrade queue
* 
如果问题导致排队导入失败,则需要重新启动系统以恢复至之前的扩展版本。
分析扩展导入失败消息
如果扩展导入失败,您将在应用程序日志中收到消息,这些消息通常表明“扩展导入失败”并引用了可提供详细信息的错误日志。在 ErrorLog.log 文件中,导入失败时出现的错误消息的末尾将说明导入扩展包失败的原因。失败示例包括导入已禁用、不允许导入 jar,等等。此类错误有助您调整相应的配置设置以成功安装扩展。
日志消息
验证 xtensionPackageImportPolicy 中的参数配置
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
删除已安装的扩展包
1. 在 Composer 中,单击“导入/导出” > “管理扩展”
已安装的扩展包列表以及包详细信息显示在仪表板上。
2. 选择要删除的扩展,然后单击
3. 在“删除确认”窗口中,单击“是”
所选扩展随即删除。
4. 浏览至 Apache Tomcat 安装目录的相应子目录,然后通过运行以下命令终止 Tomcat 服务:
shutdown.bat
5. 通过运行以下命令重新启动 Tomcat 服务:
startup.bat
6. 通过查看最终服务器启动消息,验证服务是否正确启动。然后可以导入扩展的新版本。