创建 Java 和 JavaScript 适配器

improve this page | report issue

概述

可使用 Maven 命令或通过使用 MobileFirst CLI(取决于安装和配置的 Maven)来创建适配器。然后可以使用您选择的 IDE(例如 Eclipse 或 IntelliJ)来编辑和构建适配器代码。本教程解释如何使用 Maven 和 MobileFirst CLI 来创建、构建以及部署 Java 或 JavaScript 适配器。要学习如何使用 Eclipse 或 IntelliJ IDE 来创建和构建适配器,请查看在 Eclipse 中开发适配器教程。

先决条件: 请务必先阅读适配器概述

跳转至

安装 Maven

要创建适配器,您首选需要下载并安装 Maven。请转至 Apache Maven Web 站点,然后遵循指示信息下载并安装 Maven。

使用 MobileFirst CLI 创建适配器

安装 MobileFirst CLI

遵循下载页面中的安装指示信息以安装 MobileFirst CLI。
先决条件:要使用开发人员 CLI 创建适配器,必须安装 Maven。

创建适配器

要创建 Maven 适配器项目,请使用 mfpdev adapter create 命令。 您可以选择以交互式或直接运行该命令。

交互方式

  1. 打开命令行窗口,然后运行:

    mfpdev adapter create
    
  2. 输入适配器名称。例如:

    ? Enter Adapter Name: SampleAdapter
    
  3. 使用箭头选择适配器类型,然后输入关键字:

    ? Select Adapter Type:
       HTTP
       SQL
    ❯ Java
    
         * 选择 `HTTP` 创建 JavaScript HTTP 适配器
         * 选择 `SQL` 创建 JavaScript SQL 适配器  
         * 选择 `Java` 创建 Java 适配器
    
  4. 输入适配器包(此选项仅对 Java 适配器有效)。例如:

    ? Enter Package: com.mypackage
    
  5. 输入要构建的 Maven 项目的组标识。例如:

    ? Enter Group ID: com.mycompany
    

直接方式

使用实际值替换占位符,然后运行该命令:

mfpdev adapter create <adapter_name> -t <adapter_type> -p <adapter_package_name> -g <maven_project_groupid>

使用 Maven Archetype“adapter-maven-archetype”创建适配器

“adapter-maven-archetype”是 Mobile Foundation 提供的 archetype,其基于 Maven archetype 工具箱,由 Maven 用来创建适配器 Maven 项目。

要创建 Maven 适配器项目,请使用 archetype:generate Maven 命令。执行该命令之后,Maven 将下载(或使用上面提及的本地存储库)所需的文件以生成适配器 Maven 项目。

您可以选择以交互式或直接运行该命令。

交互方式

  1. 命令行窗口,导航至您选择的位置。
    这也是将生成 Maven 项目的位置。

  2. 使用实际值替换 DarchetypeArtifactId 占位符,然后运行:

    mvn archetype:generate -DarchetypeGroupId=com.ibm.mfp -DarchetypeArtifactId=replace-with-the-adapter-type-artifact-ID
    
  • Archetype Group Id 和 Archetype 版本是标识 archetype 所需的参数。
  • Archetype Artifact Id 是标识适配器类型所需的参数:
    • 使用 adapter-maven-archetype-java 创建 Java 适配器
    • 使用 adapter-maven-archetype-http 创建 JavaScript HTTP 适配器
    • 使用 adapter-maven-archetype-sql 创建 JavaScript SQL 适配器
  1. 输入要构建的 Maven 项目的组标识。例如:

    Define value for property 'groupId': : com.mycompany
    
  2. 输入 Maven 项目的工件标识,这以后也将用作适配器名称。例如:

    Define value for property 'artifactId': : SampleAdapter
    
  3. 输入 Maven 项目版本(缺省值是 1.0-SNAPSHOT)。例如:

    Define value for property 'version':  1.0-SNAPSHOT: : 1.0
    
  4. 输入适配器包名称(缺省值是 groupId)。例如:

    Define value for property 'package':  com.mycompany: : com.mypackage
    
  5. 输入 y 以确认:

    Confirm properties configuration:
    groupId: com.mycompany
    artifactId: SampleAdapter
    version: 1.0
    package: com.mypackage
    archetypeVersion: 8.0.0
    Y: : y
    

直接方式

使用实际值替换占位符,然后运行该命令:

mvn archetype:generate -DarchetypeGroupId=com.ibm.mfp -DarchetypeArtifactId=<adapter type artifact ID> -DgroupId=<maven_project_groupid> -DartifactId=<maven_project_artifactid>  -Dpackage=<adapter_package_name>

有关 archetype:generate 命令的更多信息,请参阅 Maven 文档

文件结构

在创建适配器之后,将生成包含 src 文件夹和 pom.xml 文件的 Maven 项目:

mvn-adapter

构建和部署适配器

构建

  • 使用 MobileFirst CLI - 从项目的根文件夹运行 adapter build 命令。

    mfpdev adapter build
    
  • 使用 Maven - 每次运行 install 命令构建 Maven 项目时,都会构建适配器。

    mvn install
    

构建所有

如果 filesystem 文件夹中有多个适配器并且想要构建所有适配器,请使用:

mfpdev adapter build all

结果会生成 .adapter 归档文件,可在每个适配器的 target 文件夹中找到此文件:

java-adapter-result

部署

  1. pom.xml 文件包含以下 properties

    <properties>
     	<!-- parameters for deploy mfpf adapter -->
     	<mfpfUrl>http://localhost:9080/mfpadmin</mfpfUrl>
     	<mfpfUser>admin</mfpfUser>
     	<mfpfPassword>admin</mfpfPassword>
     	<mfpfRuntime>mfp</mfpfRuntime>
    </properties>
    
    • 使用您的 MobileFirst Server IP 地址和端口号替换 localhost:9080
    • 可选。使用您的 admin 用户名和密码替换 mfpfUsermfpfPassword 缺省值。
    • 可选。使用您的运行时名称替换 mfpfRuntime 缺省值。
  2. 从项目的根文件夹运行部署命令:

    • 使用 MobileFirst CLI
    mfpdev adapter deploy -x
    

    -x 选项将适配器部署到适配器的 pom.xml 文件中指定的 MobileFirst Server。
    如果未使用该选项,那么 CLI 将使用在 CLI 设置中指定的缺省服务器。

    有关更多的 CLI 部署选项,请运行命令:mfpdev help adapter deploy

  • 使用 Maven

    mvn adapter:deploy
    

部署所有

如果 filesystem 文件夹中有多个适配器并且想要部署所有适配器,请使用:

mfpdev adapter deploy all

提示:您也可以使用单个命令 mvn install adapter:deploy 来构建和部署适配器

部署到不同的运行时

如果您运行多个运行时,请参阅注册应用程序并将适配器部署到不同的运行时

依赖关系

要在适配器中使用外部库,请遵循以下建议的指示信息之一:

添加本地依赖关系

  1. 在根 Maven 项目文件夹下添加 lib 文件夹,然后将外部库放入其中。
  2. 在 Maven 项目的 pom.xml 文件中的 dependencies 元素下添加库路径。

例如:

<dependency>
<groupId>sample</groupId>
<artifactId>com.sample</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/</systemPath>
</dependency>

添加外部依赖关系

  1. 搜索在线存储库(如 The Central Repository)以查找依赖关系。
  2. 复制 POM 依赖关系信息,然后将其粘贴到 Maven 项目的 pom.xml 文件中的 dependencies 元素下。

以下示例使用 cloudant-client artifactId

<dependency>
  <groupId>com.cloudant</groupId>
  <artifactId>cloudant-client</artifactId>
  <version>1.2.3</version>
</dependency>

有关依赖关系的更多信息,请参阅 Maven 文档。

将适配器分组在单个 Maven 项目中

如果您的项目中有多个适配器,那么可能想要将这些适配器安排在单个 Maven 项目下。将适配器分组有利于构建所有、部署所有和共享依赖关系等。您也可以使用 mfpdev adapter build allmfpdev adapter deploy all CLI 命令构建所有和部署所有适配器,即使没有将它们分组在单个 Maven 项目中。

要分组适配器,您需要:

  1. 创建根文件夹并进行命名,例如“GroupAdapters”。
  2. 将 Maven 适配器项目放入其中。
  3. 创建 pom.xml 文件:

    <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>com.sample</groupId>
     	<artifactId>GroupAdapters</artifactId>
     	<version>1.0-SNAPSHOT</version>
     	<packaging>pom</packaging>
    
     	<modules>
                 <module>Adapter1</module>
                 <module>Adapter2</module>
     	</modules>
    
     	<properties>
     		<!-- parameters for deploy mfpf adapter -->
     		<mfpfUrl>http://localhost:9080/mfpadmin</mfpfUrl>
     		<mfpfUser>admin</mfpfUser>
     		<mfpfPassword>admin</mfpfPassword>
         <mfpfRuntime>mfp</mfpfRuntime>
     	</properties>
    
    <build>
         <plugins>
             <plugin>
                 <groupId>com.ibm.mfp</groupId>
                 <artifactId>adapter-maven-plugin</artifactId>
                 <extensions>true</extensions>
             </plugin>
         </plugins>
    </build>
    
    </project>
    
  4. 定义您选择的 groupId 元素
  5. 添加 artifactId 元素 - 根文件夹的名称
  6. 为每个适配器添加 module 元素
  7. 添加 build 元素
  8. 可选。使用特定的 MobileFirst Server IP 地址和端口号替换 localhost:9080
  9. 可选。使用您的 admin 用户名和密码替换 mfpfUsermfpfPassword 缺省值。
  10. 可选。使用您的运行时名称替换 mfpfRuntime 缺省值。

  11. 构建或部署所有适配器,请从根目录“GroupAdapters”项目运行 Maven 命令。

使用 MobileFirst Operations Console 下载或部署适配器

  1. 打开您选择的浏览器,并使用地址 http://<IP>:<PORT>/mfpconsole/ 来加载 MobileFirst Operations Console。
  2. 单击适配器旁边的“新建”按钮。您有两个创建适配器选项:
    • 使用 Maven 或 MobileFirst CLI,如上所述。
    • 下载模板适配器项目(步骤 2)。
  3. 使用 Maven 或 MobileFirst CLI 构建适配器。
  4. 选择以下方式之一来上载生成的 .adapter 文件,该文件可在适配器项目的目标文件夹中找到:
    • 单击“部署适配器”按钮(步骤 5)。
    • 将文件拖放到“新建”适配器屏幕中。

    使用控制台创建适配器

  5. 成功部署适配器之后,将会显示包含以下选项卡的详细信息页面:
    • 配置 - 由适配器 XML 文件定义的属性。在这里,您可以更改配置,而无需再次部署。
    • 资源 - 适配器资源列表。
    • 配置文件 - 要用于 DevOps 环境中的适配器配置数据。

更新适配器 Maven 项目

要使用最新的发行版更新适配器 Maven 项目,请通过在 Maven’s Central Repository 中 搜索“IBM MobileFirst Platform”以查找 API 的版本号和插件工件,然后更新适配器 Maven 项目的 pom.xml 文件中的以下属性:

  1. adapter-maven-api 版本:

    <dependency>
       <groupId>com.ibm.mfp</groupId>
       <artifactId>adapter-maven-api</artifactId>
       <scope>provided</scope>
       <version>8.0.2016061011</version>
    </dependency>
    
  2. adapter-maven-plugin 版本:

    <plugin>
       <groupId>com.ibm.mfp</groupId>
       <artifactId>adapter-maven-plugin</artifactId>
       <version>8.0.2016061011</version>
       <extensions>true</extensions>
    </plugin>
    

脱机工作

如果没有 Maven Central Repository 的在线访问权,那么您可以共享贵组织内部存储库中的 Mobile Foundation Maven 工件。

  1. 访问“下载”页面,然后下载 IBM MobileFirst Foundation Developer Kit 安装程序。
  2. 启动 MobileFirst Server,然后在浏览器中从以下 URL 装入 MobileFirst Operations Console:http://<your-server-host:server-port>/mfpconsole
  3. 单击下载中心。在工具 → 适配器 Archetype 下,单击下载。这样会下载 mfp-maven-central-artifacts-adapter.zip 归档。
  4. 通过运行适用于 Linux 和 Mac 的 install.sh 脚本或适用于 Windows 的 install.bat 脚本,将适配器 archetype 和安全性检查添加到内部 Maven 存储库。
  5. adapter-maven-api 需要以下 JAR 文件。确保这些文件位于开发人员的本地 .m2 文件夹或位于贵组织的 Maven 存储库中。您可以从 The Central Repository 下载这些文件。
    • javax.ws.rs:javax.ws.rs-api:2.0
    • javax:javaee-web-api:6.0
    • org.apache.httpcomponents:httpclient:4.3.4
    • org.apache.httpcomponents:httpcore:4.3.2
    • commons-logging:commons-logging:1.1.3
    • javax.xml:jaxp-api:1.4.2
    • org.mozilla:rhino:1.7.7
    • io.swagger:swagger-annotations:1.5.6
    • com.ibm.websphere.appserver.api:com.ibm.websphere.appserver.api.json:1.0
    • javax.servlet:javax.servlet-api:3.0.1

后续教程

Last modified on March 09, 2017