# window开发环境安装
本文档介绍如何在Windows中快速安装8.3.1,及相关介质的安装验证说明,旨在帮助开发人员快速搭建开发环境
# 环境准备
- 硬件配置 安装产品的硬件配置要求如下所示。
硬件 | 说明 |
---|---|
CPU | 主频2.0GHz以上 |
内存 | 8GB以上 |
硬盘 | 50G 以上。安装目录空间 20GB 以上。 |
- 软件配置 安装产品的软件配置要求如下所示。
软件 | 说明 |
---|---|
JDK | OracleJDK 1.8.0_162 以上版。安装包不携带JDK,请自行安装 |
node | node V10 以上 , npm 6.9及以上 |
MySQL | 安装包自带MySQL |
操作系统 | Windows 7/10/11 64位 |
- VC++ 说明:MySQL需要VC++环境,请自行下载安装 VC++ (opens new window)
# 安装介质介绍
下载介质 下载EOS_Platform_8.3.1_Private_Medium_Develop.zip
解压介质
重点: 因为此版本是绿色版本,内置的绝对路径配置在D:\primeton\eos-8.3-dev目录,建议解压缩到此目录,如果其他目录下面涉及到绝对路径的配置文件需要配置为实际的解压缩目录 安装介质中包含开发环境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配置文件目录
# 运行环境
# 运行环境简介
EOS运行环境依赖以下介质,其中mysql,nacos,redis,nginx需要优先启动,bps和gateway在afcenter之前启动
应用 | 说明 | 默认端口 |
---|---|---|
mysql 服务 | 数据库服务 | 3306 |
nacos 应用 | 配置中心,注册中心 | 8848 |
nginx 应用 | 代理服务器 | 80 |
redis 服务 | 缓存服务器 | 6379 |
governor | governor管理平台 | 29898 |
gateway | 网关应用 | 9090 |
bps | 流程平台 | 48084 |
afcenter 应用 | 基础平台应用 | 28083 |
# 配置安装
本次8.3.1提供的安装介质为绿色安装介质,除mysql需要配置外其他无需安装,介质默认解压即可运行,默认解压路径(D:\primeton\eos-8.3-dev)
MySQL安装
mysql路径及端口设置 根据本地环境设置Mysql安装路径及端口,安装包自带Mysql默认端口3306,文件路径:D:\primeton\eos-8.3-dev\mysql\my.ini 注意:这里在my.ini配置文件中添加允许传送最大数据包大小参数配置
max_allowed_packet=100M
管理员启动CMD窗口并新建Mysql服务
D: cd primeton\eos-8.3-dev\mysql\bin mysqld -install 自定义MySQL服务名 --defaults-file="D:\primeton\eos-8.3-dev\mysql\my.ini"
服务启动
MySQL数据库初始化验证 Mysql服务启动成功后,自动创建了如下数据库并做了初始化,若不是用这个默认的Mysql,需自行准备数据库和初始化(注意:Mysql数据库需设置不区分大小写)
用户名/密码:root/primeton nacos(nacos注册&配置中心数据库) bps4eos8(bps引擎数据库) afcenter4eos8(afcenter组织机构权限数据库) governor4eos8(eos8服务治理数据库)
nacos配置说明 D:\primeton\eos-8.3-dev\nacos\conf目录下,application.properties是应用配置文件,mysql-schema.sql为mysql数据库脚本,dm-schema.sql为达梦数据库脚本 application.properties配置截图
nginx配置说明 配置文件路径 D:\primeton\eos-8.3-dev\nginx\conf 此处通过下图配置引入web\conf*.conf下的配置文件,作用是将afcenter应用的代理配置引入。 若不是默认安装,修改web\conf\eos8.conf文件里配置的路径
afcenter配置说明
配置文件及脚本路径 D:\primeton\eos-8.3-dev\server\afcenter
数据库初始化说明:若需自行初始化,可使用如下方式
方式一、db-scripts\all目录下,找到对应的数据库类型,执行all.sql文件(这是完整的脚本)
方式二、db-scripts目录下,分别执行afcenter,bfp,eos,lowcode目录下对应数据库类型的all.sql文件
数据库配置文件D:\primeton\eos-8.3-dev\server\afcenter\config\AFCENTER\config\user-config.xml
注: 如不需要使用afcenter中xxl-job,可修改配置文件关闭xxl-job。
关闭xxl-job方法:在server/afcenter/config/application-job.properties配置文件中修改开关为false。
afc.job.admin.enabled=false
afc.job.executor.enabled=false
如需要使用xxl-job相关功能,使用非mysql数据库时,数据库脚本中缺少xxl-job相关脚本,请在ame+中申请补丁:PLATFORM_8.3LA1_AFCENTER_20240223_P1。
- bps配置说明 路径:D:\primeton\eos-8.3-dev\server\bps
数据库初始化说明:若需自行初始化,可使用如下方式
方式一、db-scripts\all目录下,找到对应的数据库类型,执行all.sql文件(这是完整的脚本)
方式二、db-scripts目录下,分别执行bps和eos目录下对应数据库类型的all.sql文件
数据库配置文件,路径:D:\primeton\eos-8.3-dev\server\bps\config\BPS-SERVER\config\user-config.xml
- gateway配置说明 配置所在路径:D:\primeton\eos-8.3-dev\server\gateway\config
- governor配置说明 配置所在路径:D:\primeton\eos-8.3-dev\server\governor
数据库初始化说明:若需自行初始化,可使用如下方式
方式一、执行app-db-scripts\group\all目录下对应数据库的all.sql文件,执行db-scripts下对应数据库的all.sql文件
方式二、执行app-db-scripts\group下eos和bps中对应数据库的all.sql文件,执行db-scripts下对应数据库的all.sql文件
governor数据库配置文件:D:\primeton\eos-8.3-dev\server\governor\config\application.properties
# 启动验证
在验证应用前,请启动以下应用
应用 | 说明 | 默认端口 |
---|---|---|
mysql 服务 | 数据库服务 | 3306 |
redis 服务 | 缓存服务器 | 6379 |
nacos 应用 | 配置中心,注册中心 | 8848 |
nginx 应用 | 代理服务器 | 80 |
governor | governor管理平台 | 29898 |
gateway | 网关应用 | 9090 |
bps | 流程平台 | 48084 |
afcenter 应用 | 基础平台应用 | 28083 |
启动redis
nacos验证
- 验证nacos 访问 http://localhost:8848/nacos/#/login (opens new window) 账号/密码 nacos/nacos 验证nacos启动成功
governor验证 启动governor,启动路径如下图 访问地址 http://127.0.0.1:29898/#/login (opens new window) sysadmin/000000
gateway验证
启动gateway,启动路径如下下图 gateway作为网关服务,为后台服务,无对应界面,启动过程无报错,说明gateway启动成功了。
- bps验证 启动bps,启动路径如下图 bps作为流程引擎,为后台服务,无对应界面,启动过程无报错,说明bps启动成功了。
- afcenter验证 启动afcenter,启动路径如下图 访问地址http://127.0.0.1/#/login (opens new window) admin/000000
# 开发环境
# IDE安装配置
- IDE配置 安装介质解压后包含IDE环境,无需单独安装,默认解压路径为D:\primeton\eos-8.3-dev D:\primeton\eos-8.3-dev\ide 下maven仓库配置文件
解压完成后,请修改eclipse 内存,路径如下图 配置文件下方加入以下内容,具体数值根据本地环境配置
-Xms2048m
-Xmx2048m
- 本地Maven仓库配置 安装介质解压后repository目录包含开发的相关依赖包,需要配置本地的maven仓库路径
在安装路径ide目录下settings.xml进行路径配置 setting.xml文件中将maven本地仓库地址指向IDE同级目录repository maven配置,打开IDE环境,首选项-Maven中settings设置
- 配置数据源
新建数据库链接->视图左下角数据库连接右键新建
新建mysql数据连接
指定驱动
选择模板并查找数据库驱动包
添加数据库驱动jar包
# IDE自带的驱动包路径: D:\primeton\eos-8.3-dev\ide\eclipse\dropins\eostools\plugins\com.primeton.studio.database.library_5.1.2.0\library\3rd\jdbc # 可自行选择其他版本驱动
填写数据库连接信息
- 用户名/密码:root/primeton
- 连接Url: jdbc:mysql://localhost:3306/eosdemo?characterEncoding=utf8&serverTimezone=GMT
# 新建项目
数据库初始化 新建的项目(数据源独立),需执行以下路径脚本
D:\primeton\eos-8.3-dev\server\afcenter\db-scripts\eos\Mysql\all.sql
D:\primeton\eos-8.3-dev\server\afcenter\db-scripts\bfp开头的目录(bfp-framework、bfp-message、bfp-task)\Mysql\all.sql 流程框架的初始化脚本
D:\primeton\eos-8.3-dev\server\afcenter\db-scripts\lowcode\Mysql\all.sql 低代码开发的初始化脚本
新建后端项目
创建微服务应用
- 修改项目配置文件 若项目端口和其他进程端口冲突,在application.properties中可修改项目端口 修改user-config文件配置数据库连接,数据库端口请根据情况修改
<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&characterEncoding=UTF-8&serverTimezone=GMT%2B8&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>
- 启动新建项目 启动无报错信息,IDE环境搭建完成
FAQ:
1、问题场景:若应用启动时报错:
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目录
再次启动项目,没有报之前的错误。
2、问题场景:应用启动时报错:
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>