# 普元中间件项目化部署手册
# 一、适配版本A(参考)
修订日期:2025-01-06
中间件:普元中间件 Primeton AppServer 6.5.0 (build 1876)
当前仅测试普元该版本,更高版本的项目化适配可能需要额外人力投入,预估7人天以上 项目化支持,意味着可能存在项目化适配成本,可能存在缺陷,并且后续产生的BUG可能需要额外项目化成本解决
OA版本:G6N-2 V8.2SP1 (B240705.143211.CTP163800112)
# 1.1 安装普元中间件
普元方直接安装或普元方提供手册和支持安装,在此不赘述。
# 1.1.1 启动中间件服务及配置
访问/data/primeton/PAS/pas6目录,再执行 ./startServer.sh 启动。
# 1.1.2 普元端口说明
端口 | 说明 |
---|---|
6888 | PAS V6.5管理控制台默认端口 |
8080 | PAS V6.5默认server的应用访问Http端口 |
8181 | PAS V6.5默认server的应用访问Http SSL端口 |
# 1.1.3 登录普元控制台
访问普元管理控制台: http://ip:6888
默认帐号信息:
账户类型 | 账户名称 | 默认密码 |
---|---|---|
管理员 | admin | PAS6@admin |
操作员 | operator | PAS6@operator |
审计员 | auditor | PAS6@auditor |
# 1.2 修改jvm参数
点击 配置 > seeyon-config > JVM设置 > JVM选项
# 修改堆内存大小-Xmx, 根据实例物理内存调大,例如8G,并添加其它jvm选项
-Xmx8G
# 此参数必填,务必使用G1GC
-XX:+UseG1GC
-XX:ReservedCodeCacheSize=1G
# 此参数需要根据项目上真正选用的数据库产品做配置,这里示例配置是人大金仓驱动名com.kingbase8.Driver
-Djdbcproxydriver.driverclass=com.kingbase8.Driver
# 此参数必填,不录入会导致无法启动,或启动后一堆问号乱码
-Dcom.sun.enterprise.overrideablejavaxpackages=org.apache.taglibs.standard
修改保存后,重启中间件生效,并通过命令ps -ef|grep java |grep pas
检查参数是否加载
# 1.3 部署OA应用包
前提:从致远商务公布的安装程序地址下载里找到客户版本,再找到对应的信创部署文件(如2.V8.2SP1_XinChuang.zip),将其下载下来。
提示:由于普元中间件没有标准适配,所以必须更新OA补丁包才能正常部署使用 请发起支持单获取补丁包
成功案例:JSFW-2024-02827
# 1.3.1 解压部署包文件
- 上传信创部署包到服务器指定安装目录,并解压,例如:/data/Seeyon
unzip 2.V8.2SP1_XinChuang.zip
- 由于信创部署工具未兼容普元中间件,所以需要手动解压ApacheJetspeed.7z包
若环境安装了 7za 命令,直接用命令解压即可,命令:
7za x file.7z
若环境没有安装 7za命令,工具自身也支持通过命令行的方式进行解压,在工具目录下,执行命令:
java -jar lib/J7Zip.jar X 源文件 目标路径
- 进入解压后的部署包目录(按实际路径修改):
cd /data/Seeyon/2.V8.2SP1_XinChuang/V5/
java -jar ../deploytools/lib/J7Zip.jar x ApacheJetspeed.7z /data/Seeyon/G6N/
java -jar ../deploytools/lib/J7Zip.jar x tomcat.7z /data/Seeyon/G6N/ApacheJetspeed/
- 同样方式解压productiden版本标识文件,覆盖到ApacheJetspeed目录
标识文件所在路径:信创部署包中/deploytools/file/productiden
说明:A8V5-1.7z:A8企业版、A8V5-2.7z:A8集团版、A8N-1.7z:A8-N企业版、A8N-2.7z:A8-N集团版、G6N-1.7z:政务单组织版、G6N-2.7z:政务多组织版
cd /data/Seeyon/2.V8.2SP1_XinChuang/deploytools
java -jar lib/J7Zip.jar X file/productiden/G6N-2.7z /data/Seeyon/G6N/
# 1.3.2 放置致远license文件
进入部署安装目录/data/Seeyon/G6N/,创建base/conf 、base/license目录
cd /data/Seeyon/G6N/
mkdir -p base/conf
mkdir -p base/license
把注册更新后的g6nv5.seeyonkey文件放置于/data/Seeyon/G6N/base/license目录下
# 1.4 手动初始化数据库
由于信创部署工具未支持,故需要连接数据库手动执行初始化sql文件
# 1.4.1 获取初始化sql文件
进入解压后的信创部署包对应版本对应数据库目录,如 人大金仓数据库:
cd /data/Seeyon/2.V8.2SP1_XinChuang/deploytools/file/sql/init/G6N-2/KingBase/
# 1.4.2 执行初始化sql
下载G6N-2_ALL_IN_ONE_KINGBASE.SQL到本地,连接人大金仓数据库,拷贝sql文件中内容到数据库查询窗口全选执行。
# 1.4.3 将数据库驱动拷贝至中间件lib目录下
数据库驱动可以找数据库厂商提供或者从数据库安装目录下获取
# 1.5 jar包调整
中间件域目录:/data/AppServer/pas/pas6/pas/domains/domain1/lib
OA目录:/data/Seeyon/G6N/ApacheJetspeed
cd /data/Seeyon/G6N/ApacheJetspeed/webapps/seeyon/WEB-INF/lib
cp commons-codec.jar commons-io.jar commons-lang3.jar commons-logging.jar ctp-db-pwd-clzzloader.jar ctp-db-pwd-coder.jar disruptor.jar guava.jar log4j-api.jar log4j-core.jar log4j.jar seeyon-ctp-file.jar wstx-asl.jar /data/AppServer/pas/pas6/pas/domains/domain1/lib
mv dom4j failureaccess.jar jaxen.jar seeyon-util.jar commons-collections4.jar druid.jar seeyon-ctp-dbpool.jar seeyon-ctp-jdbcproxydriver.jar seeyon-ctp-jdbcproxydriver.jar /data/AppServer/pas/pas6/pas/domains/domain1/lib
提示: 如果是arm或者其他架构的cpu芯片,OA自带的sqlite-jdbc.jar驱动可能不适配,需要另行编译
mv sqlite-jdbc.jar /data/AppServer/pas/pas6/pas/domains/domain1/lib
参考: https://open.seeyoncloud.com/v5doc/142/1190/731.html
# 1.6 数据源配置
# 1.6.1 新建连接池
进入管理控制台-资源-JDBC-JDBC连接池-新建
池名称:seeyon
资源类型:java.sql.Driver
数据库驱动程序供应商:输入SEEYON 【因为要使用驱动代理,所以此处自定义】
下一步,数据库驱动类名统一使用:
com.seeyon.ctp.monitor.perf.jdbcmonitor.proxyobj.JMProxyDriver
池设置最小连20,最大连接500,事务隔离级别选择:read-committed
其他属性配置数据库url及用户名密码:
url(按实际ip、端口、数据库名称修改标红处):
jdbc:kingbase8://10.2.5.40:54321/v82sp1_pas?clientEncoding=UTF-8
正确输入用户名密码,并点击右下角-完成。
# 1.6.2 新建JDBC资源
管理控制台-资源-JDBC-JDBC资源-新建
JNDI名称(固定不可更改并注意大小写):jdbc/ctpDataSource
池名称:选择上一步创建的池名称
可用目标:选择创建的独立实例名
# 1.7 部署应用
# 1.7.1 部署ROOT
管理控制台-应用程序-部署
位置:选择-可以访问服务器本地的打包文件或目录,并输入ROOT目录实际路径
类型:选择web应用程序
上下文根:/
应用程序名称:ROOT
状态:勾选
部署顺序:100
其他默认不勾选
可用目标:选择实例seeyon
# 1.7.2 部署static
位置:选择-可以访问服务器本地的打包文件或目录,并输入static目录实际路径
类型:选择web应用程序
上下文根:/static
应用程序名称:static
状态:勾选
部署顺序:101
其他默认不勾选
可用目标:选择实例seeyon
# 1.7.3 部署sportal
位置:选择-可以访问服务器本地的打包文件或目录,并输入sportal目录实际路径
类型:选择web应用程序
上下文根:/sportal
应用程序名称:sportal
状态:勾选
部署顺序:102
其他默认不勾选
可用目标:选择实例seeyon
# 1.7.4 部署seeyon
位置:选择-可以访问服务器本地的打包文件或目录,并输入seeyon目录实际路径
类型:选择web应用程序
上下文根:/seeyon
应用程序名称:seeyon
状态:不勾选 【此处取消勾选,seeyon应用目录较大,在部署后控制台单独启用】
部署顺序:103
其他默认不勾选
可用目标:选择实例seeyon
点击完成开始部署,中间件日志/data/primeton/PAS/pas6/pas/domains/domain1/logs/server.log可以看到成功部署信息。
部署完成后在应用列表点击seeyon应用-目标-更多操作-启用
seeyon应用目录较大,启用时间较长,可进入中间件/data/primeton/PAS/pas6/pas/nodes/localhost-domain1/seeyon/logs目录使用tail -f server.log命令查看进度
# 二、适配版本B(参考)
中间件:普元中间件Version.6.5.104 (build 2116)
数据库:人大金仓V8R006
OA版本:A8-N V8.2SP1 (B231013.190307.CTP109117792)
关联支持项目:PMP-JFZC-2024-5329
# 2.1 安装普元中间件
普元方直接安装或普元方提供手册和支持安装,在此不赘述。
# 2.1.1 启动中间件服务及配置
访问/data/primeton/PAS/pas6目录,再执行 ./startServer.sh 启动。
# 2.1.2 普元端口说明
端口 | 说明 |
---|---|
6888 | PAS V6.5管理控制台默认端口 |
8080 | PAS V6.5默认server的应用访问Http端口 |
8181 | PAS V6.5默认server的应用访问Http SSL端口 |
# 2.1.3 登录普元控制台
访问普元管理控制台: http://ip:6888
默认帐号信息:
账户类型 | 账户名称 | 默认密码 |
---|---|---|
管理员 | admin | PAS6@admin |
操作员 | operator | PAS6@operator |
审计员 | auditor | PAS6@auditor |
# 2.1.4 新建独立实例
实例名称:seeyon ,其他配置默认
# 2.2 修改jvm参数
点击独立实例-seeyon-config-JVM设置-JVM选项
-Xmx根据实例物理内存调大,例如8G,并添加其它jvm选项
# 此参数必填,务必使用G1GC
-XX:+UseG1GC
-XX:ReservedCodeCacheSize=1G
# 此参数需要根据项目上真正选用的数据库产品做配置,这里示例配置是人大金仓驱动名com.kingbase8.Driver
-Djdbcproxydriver.driverclass=com.kingbase8.Driver
# 此参数必填,不录入会导致无法启动,或启动后一堆问号乱码
-Dcom.sun.enterprise.overrideablejavaxpackages=org.apache.taglibs.standard
# 2.3 启动实例
服务器查看参数是否生效:
ps -ef|grep java |grep pas
# 2.4 部署OA应用包
前提:从致远商务公布的安装程序地址下载里找到客户版本,再找到对应的信创部署文件(如2.V8.2SP1_XinChuang.zip),将其下载下来。
# 2.5 解压部署包文件
- 上传信创部署包到服务器指定安装目录,并解压,例如:/data/primeton/Seeyon
unzip 2.V8.2SP1_XinChuang.zip
- 由于信创部署工具未兼容普元中间件,所以需要手动解压ApacheJetspeed.7z包
若环境安装了 7za 命令,直接用命令解压即可,命令:
7za x file.7z
若环境没有安装 7za命令,工具自身也支持通过命令行的方式进行解压,在工具目录下,执行命令:
java -jar lib/J7Zip.jar X 源文件 目标路径
- 进入解压后的部署包目录(按实际路径修改):
cd /data/primeton/Seeyon/2.V8.2SP1_XinChuang/deploytools
java -jar lib/J7Zip.jar X
/data/primeton/Seeyon/2.V8.2SP1_XinChuang/V5/ApacheJetspeed.7z
/data/primeton/Seeyon/V5/
- 同样方式解压productiden版本标识文件,覆盖到ApacheJetspeed目录
标识文件所在路径:信创部署包中/deploytools/file/productiden
说明:A8V5-1.7z:A8企业版、A8V5-2.7z:A8集团版、A8N-1.7z:A8-N企业版、A8N-2.7z:A8-N集团版
cd /data/primeton/Seeyon/2.V8.2SP1_XinChuang/deploytools
java -jar lib/J7Zip.jar X
/data/primeton/Seeyon/2.V8.2SP1_XinChuang/deploytools/file/productiden/A8N-2.7z
/data/primeton/Seeyon/V5/
# 2.6 放置致远license文件
进入部署安装目录/data/primeton/Seeyon/V5/,创建base/conf 、base/license目录
cd /data/primeton/Seeyon/V5/
mkdir -p base/conf
mkdir -p base/license
把注册更新后的a8nv5.seeyonkey文件放置于/data/primeton/Seeyon/V5/base/license目录下
# 2.7 手动初始化数据库
# 2.7.1 说明
由于信创部署工具未支持,故需要连接数据库手动执行初始化sql文件(人大金仓数据库部署及用户创建请参考A8-N V8.2SP1信创环境部署手册:人大金仓安装配置)
参考手册地址:https://open.seeyoncloud.com/v5doc/34/973/981/985.html#_6-1-安装数据库 (opens new window)
# 2.7.2 获取初始化sql文件
进入解压后的信创部署包对应版本对应数据库目录,如A8N-2集团版
人大金仓数据库:
cd /data/primeton/Seeyon/2.V8.2SP1_XinChuang/deploytools/file/sql/init/A8N-2/KingBase/
# 2.7.3 执行初始化sql
下载A8N-2_ALL_IN_ONE_KINGBASE.SQL到本地,连接人大金仓数据库,拷贝sql文件中内容到数据库查询窗口全选执行。
# 2.8 打上普元中间件补丁并调整xml
补丁包可联系内部人员在关联支持项目单中获取:PMP-JFZC-2024-5329
# 2.8.1 补丁class文件打入jar包
1、将提供的普元中间件patch补丁包中下列目录中的类打入pas6\pas\modules目录的去掉-patch的同名jar包中(container-common.jar\ dol.jar\ jpa-container.jar):
container-common-patch、dol-patch、jpa-container-patch
把服务器以上三个jar下载到本地,用winrar打开jar文件,把对应patch目录文件拖进去,点击确定关闭即可
2、 将1-serverdector-patch中的类参考第一步打入到ApacheJetspeed\webapps\seeyon\WEB-INF\lib\seeyon-util.jar中。
3、 如果有则删除ApacheJetspeed\webapps\seeyon\WEB-INF\classes\com\seeyon\ctp\util\ServerDetector.class冲突的类(一般此目录存在该文件都是客开,可以联系客开检查并合并1-serverdector-patch中的代码)
# 2.8.2 jar文件打入OA及中间件目录
将hazelcast-3.11.7.jar复制到部署目录ApacheJetspeed\webapps\seeyon\WEB-INF\lib目录中
将pas4zyoa-patch.jar复制到中间件安装目录pas6\pas\lib\endorsed目录中(该目录需要新建)
# 2.9 xml文件调整
拷贝patch包中appserver-web.xml放到ApacheJetspeed\webapps\seeyon\WEB-INF下
删除ApacheJetspeed\webapps\ROOT\META-INF\context.xml
# 2.10 jar包调整
- 把ApacheJetspeed\webapps\seeyon\WEB-INF\lib目录以下的jar文件复制到pas6\pas\lib目录下面:
seeyon-ctp-dbpool.jar、seeyon-ctp-giant-panda.jar、seeyon-ctp-jdbcproxydriver.jar、druid.jar、guava.jar
把ApacheJetspeed\webapps\seeyon\WEB-INF\lib目录下的serializer.jar、xalan.jar拷贝到/pas6/pas/lib/endorsed下
把部署包中2.V8.2SP1_XinChuang/deploytools/lib/kingbase8-8.6.0.jar复制到pas6\pas\lib下
删除ApacheJetspeed\webapps\seeyon\WEB-INF\lib下面的下面的jar:
seeyon-ctp-giant-panda.jar、seeyon-ctp-jdbcproxydriver.jar
# 2.11 数据源配置
# 2.11.1 新建连接池
进入管理控制台-资源-JDBC-JDBC连接池-新建
池名称:seeyon
资源类型:java.sql.Driver
数据库驱动程序供应商:输入SEEYON 【因为要使用驱动代理,所以此处自定义】
下一步,数据库驱动类名统一使用:
com.seeyon.ctp.monitor.perf.jdbcmonitor.proxyobj.JMProxyDriver
池设置最小连20,最大连接500,事务隔离级别选择:read-committed
其他属性配置数据库url及用户名密码:
url(按实际ip、端口、数据库名称修改标红处):
jdbc:kingbase8://10.2.5.40:54321/v82sp1_pas?clientEncoding=UTF-8
正确输入用户名密码,并点击右下角-完成。
# 2.11.2 新建JDBC资源
管理控制台-资源-JDBC-JDBC资源-新建
JNDI名称(固定不可更改并注意大小写):jdbc/ctpDataSource
池名称:选择上一步创建的池名称
可用目标:选择创建的独立实例名
# 2.12 部署应用
# 2.12.1 部署ROOT
管理控制台-应用程序-部署
位置:选择-可以访问服务器本地的打包文件或目录,并输入ROOT目录实际路径
类型:选择web应用程序
上下文根:/
应用程序名称:ROOT
状态:勾选
部署顺序:100
其他默认不勾选
可用目标:选择实例seeyon
# 2.12.2 部署static
位置:选择-可以访问服务器本地的打包文件或目录,并输入static目录实际路径
类型:选择web应用程序
上下文根:/static
应用程序名称:static
状态:勾选
部署顺序:101
其他默认不勾选
可用目标:选择实例seeyon
# 2.12.3 部署sportal
位置:选择-可以访问服务器本地的打包文件或目录,并输入sportal目录实际路径
类型:选择web应用程序
上下文根:/sportal
应用程序名称:sportal
状态:勾选
部署顺序:102
其他默认不勾选
可用目标:选择实例seeyon
# 2.12.4 部署seeyon
位置:选择-可以访问服务器本地的打包文件或目录,并输入seeyon目录实际路径
类型:选择web应用程序
上下文根:/seeyon
应用程序名称:seeyon
状态:不勾选 【此处取消勾选,seeyon应用目录较大,在部署后控制台单独启用】
部署顺序:103
其他默认不勾选
可用目标:选择实例seeyon
点击完成开始部署,中间件日志/data/primeton/PAS/pas6/pas/domains/domain1/logs/server.log可以看到成功部署信息。
部署完成后在应用列表点击seeyon应用-目标-更多操作-启用
seeyon应用目录较大,启用时间较长,可进入中间件/data/primeton/PAS/pas6/pas/nodes/localhost-domain1/seeyon/logs目录使用tail -f server.log命令查看进度
# 常见问题
# 问题一:部署应用时报错:错误:应用数超过许可证限制:3,请合法使用普元产品,普元公司保留所有权利!
问题原因:直接解压启动使用普元中间件,没有放置普元中间件授权,默认只有3个应用授权
解决方法:管理控制台-右上角-点击License,上传新的license授权即可
# 问题二:启动日志中报错,Caused by: java.lang.ClassNotFoundException: org/apache/xalan/processor/TransformerFactoryImpl
问题原因:中间件目录缺少或未加载到xalan.jar
解决方法:拷贝ApacheJetspeed\webapps\seeyon\WEB-INF\lib\xalan.jar到中间件pas6/pas/lib/endorsed/目录下重启实例
# 问题三:seeyon资源初始化完成后报错:java.lang.NoClassDefFoundError: org/apache/xml/serializer/OutputPropertiesFactory
问题原因:中间件目录缺少或未加载到serializer.jar
解决方法:拷贝ApacheJetspeed\webapps\seeyon\WEB-INF\lib\serializer.jar到中间件pas6/pas/lib/endorsed/目录下重启实例
# 问题四:启动日志中发现报错:java.lang.NoClassDefFoundError: sun/security/ssl/HelloExtension
问题原因:Grizzly与jdk版本兼容性问题
解决方法:找到PAS/pas6/pas/modules/endorsed/grizzly-npn-bootstrap.jar,用winrar打开删除sun目录,重启实例
# 问题五 启动报sqlite编译异常
cd /opt/Seeyon/G6N/ApacheJetspeed/webapps/seeyon/WEB-INF/lib
rm -f sqlite-jdbc.jar
将8.2信创部署手册中提供的sqlite3.7.2版本上传至当前目录
快速跳转
- 普元中间件项目化部署手册
- 一、适配版本A(参考)
- 二、适配版本B(参考)
- 2.4 部署OA应用包
- 常见问题
- 问题一:部署应用时报错:错误:应用数超过许可证限制:3,请合法使用普元产品,普元公司保留所有权利!
- 问题二:启动日志中报错,Caused by: java.lang.ClassNotFoundException: org/apache/xalan/processor/TransformerFactoryImpl
- 问题三:seeyon资源初始化完成后报错:java.lang.NoClassDefFoundError: org/apache/xml/serializer/OutputPropertiesFactory
- 问题四:启动日志中发现报错:java.lang.NoClassDefFoundError: sun/security/ssl/HelloExtension
- 问题五 启动报sqlite编译异常
