EOS Low-Code Platform 8 EOS Low-Code Platform 8
  • 8.3.2 (opens new window)
  • 8.3.1 (opens new window)
  • 8.3LA1 (opens new window)
  • 8.2GA (opens new window)
产品简介
学习指南
更新说明
安装与集成
初见EOS
低代码开发手册
专业代码开发手册
专题场景实战
公共服务框架
应用运行治理
升级手册
常见问题
  • Windows快速安装指南
  • 环境准备
  • 下载并解压安装介质
  • 安装运行环境
  • 配置MySQL
  • 启动运行环境
  • 配置开发环境
  • 配置IDE
  • 新建后端项目
  • Troubleshooting
  • 报错场景一
  • 报错场景二

# Windows快速安装指南

说明:本文介绍最快捷的安装方式,但对安装介质的路径有强制要求,且EOS8依赖的工具均直接使用介质包内提供的工具。

# 环境准备

  • 硬件配置要求

    硬件 说明
    CPU 主频2.0GHz以上
    内存 8GB以上
    硬盘 50G 以上。安装目录空间 20GB 以上。
  • 软件配置要求

    软件 说明
    JDK JDK需要自行安装,推荐OracleJDK 1.8.0_162。
    node 推荐node V10,npm 6.9
    MySQL 使用安装包自带MySQL
    操作系统 Windows 7/10/11 64位
  • VC++
    MySQL需要VC++环境,请自行下载安装 VC++ (opens new window)。

# 下载并解压安装介质

  1. 下载介质
    下载 EOS_Platform_8.3.3_Private_Medium_Develop.zip
    使用git命令git clone https://gitee.com/a0000000001/require.git拉取nginx_redis_mysql相关压缩文件

  2. 解压介质
    注意:务必将介质解压到D:\primeton\eos-8.3-dev目录。
    因为此版本是绿色版本,内置的绝对路径配置在此目录,解压缩到此目录可以避免额外的参数配置操作。
    将git拉取的文件nginx_redis_mysql.zip.001解压缩,再将文件nginx_redis_mysql.zip_再次解压缩,进入nginx_redis_mysql文件夹内将nginx、redis、mysql文件夹拷贝至D:\primeton\eos-8.3-dev目录内即可。
    如果需要自定义安装目录,请参考path_custom.md
    介质的结构介绍
    安装介质中包含开发环境所需的IDE、Maven、nacos、nginx、redis、repository及前后端应用,具体目录如下:

      eos-8.3-dev
      │
      ├── ide                                     集成开发环境
      │   ├── eclipse                             Studio开发工具
      │   ├── workspace                           Studio默认工作空间
      │   └── settings.xml                        maven配置文件
      │
      ├── maven                                   maven目录
      │
      ├── mysql                                   mysql5.7数据库
      │
      ├── nacos                                   nacos应用目录
      │   ├──bin                                  
      │   │   ├── startup.cmd                     nacos应用启动脚本
      │   │   └── shutdown.cmd                    nacos应用停止脚本
      │   └──conf                                 nacos配置文件目录
      │
      ├── nginx                                   
      │   ├── conf                                
      │   │   └── nginx.conf                      nginx主配置文件
      │   ├── startup.cmd                         nginx应用启动脚本
      │   └── shutdown.cmd                        nginx应用停止脚本
      │
      ├── redis                                   
      │   ├── redis.windows.conf                  redis应用配置文件
      │   ├── startup.cmd                         redis应用启动脚本
      │   └── shutdown.cmd                        redis应用停止脚本
      │
      ├── repository                              maven仓库
      │
      ├── server                                  应用目录
      │   ├── bps                                 bps流程引擎目录
      │   │   ├── bin                     
      │   │   │   ├── startup.cmd                 bps应用启动脚本
      │   │   │   └── shutdown.cmd                bps应用停止脚本
      │   │   ├── config                          bps配置文件目录
      │   │   ├── db-scripts                      bps-db脚本目录
      │   │   └── *.jar                           bps应用jar包
      │   │ 
      │   ├── afcenter                            afcenter应用目录
      │   │   ├── bin                     
      │   │   │   ├── startup.cmd                 afcenter应用启动脚本
      │   │   │   └── shutdown.cmd                afcenter应用停止脚本
      │   │   ├── config                          afcenter配置文件目录
      │   │   ├── db-scripts                      afcenter,bfp,eos,lowcode脚本目录
      │   │   ├── lib                             数据库驱动包及第三方补丁
      │   │   └── *.jar                           afcenter应用jar包
      │   │
      │   ├── gateway                             网关应用目录
      │   │   ├── bin                     
      │   │   │   ├── startup.cmd                 gateway应用启动脚本
      │   │   │   └── shutdown.cmd                gateway应用停止脚本
      │   │   ├── config                          gateway配置文件目录
      │   │   └── *.jar                           gateway应用jar包
      │   │
      │   ├── governor                            governor应用目录
      │   │   ├── bin                     
      │   │   │   ├── startup.cmd                 governor应用启动脚本
      │   │   │   └── shutdown.cmd                governor应用停止脚本
      │   │   ├── config                          governor配置文件目录
      │   │   ├── db-scripts                      governor-db脚本目录
      │   │   ├── app-db-scripts                  bps-db、eos-db脚本目录
      │   │   └── *.jar                           governor应用jar包
      │   │
      ├── source                              源码目录
      │   ├── afcenter-ui                     afcenter前端源码
      │   └── afcenter                        afcenter后端源码
      │   ├── bfp-ui                          bfp前端源码
      │   └── bfp                             bfp后端源码
      │   │
      ├── web                                 前端资源目录
      │   ├── afcenter                        afcenter前端静态资源
      │   └── conf                            nginx配置文件目录
    
    

解压后目录结构

# 安装运行环境

运行环境所需工具,介质内均已提供,对应端口如下:

应用 说明 默认端口
mysql 服务 数据库服务 3306
nacos 应用 配置中心,注册中心 8848
nginx 应用 代理服务器 80
redis 服务 缓存服务器 6379
governor governor管理平台 29898
gateway 网关应用 9090
bps 流程平台 48084
afcenter 应用 基础平台应用 28083

# 配置MySQL

快速安装时,使用介质内提供的工具,则仅配置MySQL即可。配置步骤如下:

说明:如果您使用自定义的数据库服务,请按照此文档修改相关配置。

  1. 在D:\primeton\eos-8.3-dev\mysql\my.ini配置文件中,添加max_allowed_packet=100M ,配置允许传送最大数据包。添加后的my.ini文件如下:

    [mysql]
     # 设置mysql客户端默认字符集
    default-character-set=utf8 
    
    [mysqld]
    # 设置MySQL的端口
    port = 3306 
    
    # 设置mysql的安装目录
    basedir=d:/primeton/eos-{{book.default_catalog}}-dev/mysql
    
    # 设置mysql的数据目录
    datadir=d:/primeton/eos-{{book.default_catalog}}-dev/mysql/data
    
    # 允许最大连接数
    max_connections=2000
    
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    
    sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
    
    # skip-grant-tables
    
    # 允许传送最大数据包
    max_allowed_packet=100M
    
  2. 以管理员权限运行CMD,

    新建一个供EOS8使用的MySQL服务

    。

    cd D:\primeton\eos-{{book.default_catalog}}-dev\mysql\bin
    
    mysqld -install 自定义MySQL服务名 --defaults-file="D:\primeton\eos-{{book.default_catalog}}-dev\mysql\my.ini"
    
  3. 启动MySQL服务

    1. 在Windows开始菜单中搜索服务,打开服务的窗口。
    2. 找到上一步自定义的MySQL服务名,右键单击,然后单击启动即可。

    mysql服务启动

  4. MySQL数据库验证 安装介质自带的MySQL已预先建立了以下数据库。可使用用户名/密码:root/primeton登录MySQL,进行验证。

    • nacos:nacos注册&配置中心数据库
    • bps4eos8:bps引擎数据库
    • afcenter4eos8:afcenter组织机构权限数据库
    • governor4eos8:eos8服务治理数据库

# 启动运行环境

使用管理员权限,在CMD中执行D:\primeton\eos-8.3-dev\startup.cmd,各服务会自动启动。

说明:启动过程中会开启多个CMD窗口,请不要关闭窗口,否则服务会被关闭,无法进行以下验证。

  • Redis启动后的效果如下图 redis

  • 验证nacos nacos启动后的效果如下图

    nacos验证

    验证nacos是否启动成功:访问 http://localhost:8848/nacos/#/login (opens new window) ,输入账号/密码: nacos/nacos ,可验证nacos。 nacos登录页

  • 验证governor

    访问地址 http://127.0.0.1:29898/#/login (opens new window),输入账密:sysadmin/000000。 登录成功

  • gateway验证 gateway作为网关服务,为后台服务,无对应界面,启动过程无报错,说明gateway启动成功了。 gateway

  • bps验证 bps作为流程引擎,为后台服务,无对应界面,启动过程无报错,说明bps启动成功了。 bps

  • afcenter验证 访问地址:http://127.0.0.1/#/login (opens new window),账密 admin/000000 afc登录成功

# 配置开发环境

# 配置IDE

安装介质中包含了Eclipse IDE,无需单独安装,默认IDE文件夹的默认路径为D:\primeton\eos-8.3-dev\ide。

说明:如果您将安装介质解压到自定义目录下,请注意替换下文中的文件路径D:\primeton\eos-8.3-dev\...为真实的介质解压路径。例如您将介质解压至C:\EOS8,则您的IDE文件夹的路径为C:\EOS8\ide。

IDE安装路径

  1. 修改分配给Eclipse的内存

    文件路径为D:\primeton\eos-8.3-dev\ide\eclipse\eclipse.ini。 需要在文件中加入以下内容。具体数值可根据开发项目所需算力和主机配置设置。

    # 最小内存
    -Xms2048m
    
    # 最大内存
    -Xmx2048m 
    
  2. 修改Maven仓库地址 安装介质的repository文件夹包含了开发EOS8项目所需的依赖包,所以需要修改Maven本地仓库地址。

    1. 在D:\primeton\eos-8.3-dev\ide\settings.xml文件中,将Maven的localRepository修改为D:\primeton\eos-8.3-dev\repository 配置文件
    2. 在IDE界面中,依次点击窗口>首选项>Maven>User Settings配置,按照下图修改。 maven设置
  3. 配置数据源

    1. 在IDE界面中,右键单击Database Connections,然后单击New。

      新建数据源

    2. 在弹窗New Connection Profile中选择MySQL,然后为填入新建连接的名称Name,然后单击下一步。

      配置mysql链接

    3. 指定连接的驱动

      1. 如下图所示,单击Drivers旁边的图标,

        新建驱动

      2. 在Name/Type页签中选择MySQL5.6Driver。

        选择驱动

      3. 单击JAR List页签,再单击Add JAR/Zip... 选择驱动

      4. 添加数据库驱动包 可选择介质自带驱动包,路径为D:\primeton\eos-8.3-dev\ide\eclipse\dropins\eostools\plugins\com.primeton.studio.database.library_5.1.2.0\library\3rd\jdbc\mysql-connector-java-5.1.47.jar。也可自行选择其他版本驱动。 添加驱动jia

      5. 单击Properties页签,填写数据库连接信息。

        • User ID: root
        • Password: primeton
        • Connection URL: jdbc:mysql://localhost:3306/eosdemo?characterEncoding=utf8&serverTimezone=GMT 其中,localhost:3306为MySQL地址:端口(默认3306),eosdemo为前文中为EOS8配置的MySQL服务名。

        单击确定后,可以看到以下窗口。单击Test Connection,测试连接。数据库连接信息图片

  4. 配置JDK

    将默认JDK更改为1.8版本:

    1. 工具栏:窗口 - 首选项,输入“jre”搜索,选择Installed JRE,如果列表中没有1.8JDK,则点击ADD按钮,添加本机中1.8JDK。勾选1.8JDK,点击应用。 安装JRE

    2. 在首选项左侧树中,点击Execution,选择JavaSE-1.8,在右侧列表中勾选JDK1.8. 配置JDK1.8

    3. 在首选项左侧树中,点击Compiler,将右侧的编辑级别均改为1.8,点击应用并关闭。 修改默认JDK

# 新建后端项目

  1. 在IDE界面左上角,单击文件>新建>EOS项目。然后选择微服务应用,单击下一步。

  2. 填入应用信息,示例如下图。

    新建项目注意:端口号不要与其他服务冲突。如果项目创建后发现端口冲突,可以在/project/com.primeton.eos.project.boot/src/META-INF/application.properties中修改端口。

  3. 配置数据库连接

    • 文件路径:/project/com.primeton.eos.project.boot/src/META-INF/_srv/config/user-config.xml
    • 修改配置项:jdbc:mysql://127.0.0.1:3306/eosdemo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
    • 格式:jdbc:mysql://数据库ip:端口号/供EOS8使用的数据库服务名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=时区;useSSL=false
      <group name="default">
          <configValue key="Database-Type">MySql</configValue>
          <configValue key="Jdbc-Type"/>
          <configValue key="C3p0-DriverClass">com.mysql.jdbc.Driver</configValue>
          <configValue key="C3p0-Url">jdbc:mysql://127.0.0.1:3306/eosdemo?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8&amp;useSSL=false</configValue>
          <configValue key="C3p0-UserName">root</configValue>
          <configValue key="C3p0-Password">root</configValue>
          <configValue key="C3p0-PoolSize">10</configValue>
          <configValue key="C3p0-MaxPoolSize">50</configValue>
          <configValue key="C3p0-MinPoolSize">10</configValue>
          <!-- //seconds, 0 means connections never expire -->
          <configValue key="C3p0-MaxIdleTime">600</configValue>
          <!-- //idle connections never tested -->
          <configValue key="C3p0-IdleConnectionTestPeriod">900</configValue>
          <configValue key="C3p0-MaxStatements">0</configValue>
           <configValue key="C3p0-NumHelperThreads">1</configValue>
    
          <configValue key="Transaction-Isolation">ISOLATION_DEFAULT</configValue>
          <configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue>
          <configValue key="Retry-Connect-Count">-1</configValue>
       </group>
    
  4. 启动项目 按下图所示,启动项目。 启动后端项目
    如果启动无报错信息,则表示IDE环境搭建成功。 后端项目启动完成

# Troubleshooting

# 报错场景一

报错如下

Caused by: com.ctrip.framework.apollo.exceptions.ApolloConfigException: Unable to load instance for com.ctrip.framework.apollo.spring.config.ConfigPropertySourceFactory!
  at com.ctrip.framework.apollo.spring.util.SpringInjector.getInstance(SpringInjector.java:40)
  at com.ctrip.framework.apollo.spring.boot.ApolloApplicationContextInitializer.<init>(ApolloApplicationContextInitializer.java:66)
  at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
  at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
  at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
  at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211)
  ... 8 more
Caused by: com.ctrip.framework.apollo.exceptions.ApolloConfigException: Unable to initialize Apollo Spring Injector!
  at com.ctrip.framework.apollo.spring.util.SpringInjector.getInjector(SpringInjector.java:24)
  at com.ctrip.framework.apollo.spring.util.SpringInjector.getInstance(SpringInjector.java:37)
  ... 15 more

解决方法

在IDE中,点击窗口>首选项>Java>已安装的JRE,将jre的位置指向产品支持的本地的JDK目录。
修改jre配置 指定JDK 再次启动项目即可。

# 报错场景二

报错如下

java.lang.ClassNotFoundException: com.eos.common.schedule.mbean.AppScheduleConfigHandler
  at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
  at com.eos.common.management.mbean.AppMbeanConfigHandler.doToLoad(AppMbeanConfigHandler.java:138)
  at com.eos.common.management.mbean.AppMbeanConfigHandler.toLoad(AppMbeanConfigHandler.java:108)
  at com.eos.common.management.mbean.AppMbeanConfigHandler.toLoad(AppMbeanConfigHandler.java:45)
  at com.primeton.common.config.impl.ConfigurationHelper$1.doHandler(ConfigurationHelper.java:58)
  at com.primeton.common.config.impl.ConfigurationHelper.handlerModule(ConfigurationHelper.java:123)
  at com.primeton.common.config.impl.ConfigurationHelper.doHandler(ConfigurationHelper.java:78)
  at com.primeton.common.config.impl.ConfigurationHelper.initLoad(ConfigurationHelper.java:53)
  at com.primeton.ext.common.config.startup.AppConfigStartupRuntimeListener.start(AppConfigStartupRuntimeListener.java:50)
  at com.primeton.runtime.core.impl.RuntimeListenerManagerImpl.startListener(RuntimeListenerManagerImpl.java:43)
  at com.primeton.ext.runtime.core.RuntimeManager.start(RuntimeManager.java:55)
  at com.primeton.ext.runtime.core.RuntimeJ2EEHost.contextInitialized(RuntimeJ2EEHost.java:55)
  at com.primeton.eos.springboot.runtime.EOS8RuntimeJ2EEHost.contextInitialized(EOS8RuntimeJ2EEHost.java:51)
  at com.primeton.eos.springboot.autoconfig.EOS8SpringBootConfiguration$1.onStartup(EOS8SpringBootConfiguration.java:135)
  at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:237)
  at com.primeton.appserver.AppServerStarter.onStartup(AppServerStarter.java:51)
  at com.primeton.appserver.container.core.StandardContext.startInternal(StandardContext.java:5106)
  at com.primeton.appserver.container.util.LifecycleBase.start(LifecycleBase.java:168)

解决方法

注释掉项目里sys-config.xml中的此段配置,再启动项目。

<group name="ScheduleMBean">
            <configValue key="Type">config</configValue>
            <configValue key="Class">com.eos.common.config.mbean.Config</configValue>
            <configValue key="Handler">com.eos.common.schedule.mbean.AppScheduleConfigHandler</configValue>
            <configValue key="ConfigFileType">config</configValue>
</group>

注释掉配置

← 安装生产环境 安装到自定义目录 →