iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >宝兰德BES安装及Springboot项目打包部署及websocket解决方案
  • 184
分享到

宝兰德BES安装及Springboot项目打包部署及websocket解决方案

javatomcatspringbootwebsocket 2023-09-03 09:09:11 184人浏览 独家记忆
摘要

随着软件国产化越来越普及,客户在实施中选择了宝兰德,这几天终于弄好,发个文章记录一下。 BES安装jdk使用版本为Kona8.0.1_242 bes安装,在实施过程中,将安装步骤整合成shell脚本了,方便新服务器一键安装,脚本包含内容:一

随着软件国产化越来越普及,客户在实施中选择了宝兰德,这几天终于弄好,发个文章记录一下。

  1. BES安装jdk使用版本为Kona8.0.1_242

bes安装,在实施过程中,将安装步骤整合成shell脚本了,方便新服务器一键安装,脚本包含内容:一键安装参数检查、解压安装包、导入证书、指定密码、实例配置、修改JVM、创建启停脚本、权限控制、安装补丁等等(具体脚本中都有备注,可根据实际情况修改里面的参数)

#!/bin/bash##**********************************************************************************************#Author:        TIL#Date:          2022-06-13#FileName:     BES_standalone_install.sh#脚本执行格式: sh BES_standalone_install.sh 安装包名 /安装路径 用户名 HTTP端口 CONSOLE端口 JMX端口  JDK路径#示例:          sh BES_standalone_install.sh BOSH-BES952-standalone-install.tar uuop /uuop 28080 19200 10081 /usr/java/jdk1.8.0_251#**********************************************************************************************DIR=`pwd`BES_FILE=$1             #BOSH-BES952-standalone-install.tarBES_USER=$2BES_DIR=$3HTTP_PORT=$4            #默认28080CONSOLE_PORT=$5         #默认19200JMX_PORT=$6             #默认10081JAVA_HOME=$7echo -e "\nParameters checking...\n"####判断参数个数############if ! [ $# -eq 7 ];then        echo "please check Parameters!"        exit 1fi#####判断BES安装包#######if [ ! -f "$DIR/$BES_FILE" ];then        echo "file $BES_FILE not exist!"        exit 2;fi#####判断用户#########if ! id -u $BES_USER >/dev/null 2>&1; then        echo "user $BES_USER not exist!"        exit 3fi#####判断安装目录是否已存在#######if [ ! -d "$BES_DIR" ];then        echo "dir $BES_DIR not exit!"        exit 4fi#####判断安装目录下是否已存在BES目录#######BES_HOME=$BES_DIR/BES952echo $BES_HOMEif  [ -d "$BES_HOME" ];then        echo "dir $BES_HOME exist!"        exit 5fi#####判断http端口占用##if  netstat -ltn|grep :$HTTP_PORT >/dev/null 2>&1; then        echo "port $HTTP_PORT used!"        exit 6fi#####判断console端口占用##if  netstat -ltn|grep :$CONSOLE_PORT >/dev/null 2>&1; then        echo "port $CONSOLE_PORT used!"        exit 7fi#####判断jmx端口占用##if  netstat -ltn|grep :$JMX_PORT >/dev/null 2>&1; then        echo "port $JMX_PORT used!"        exit 8fiif [ $JMX_PORT -gt 10090 ] || [ $JMX_PORT -lt 10071 ];then        echo "port $JMX_PORT error! in 10071~10090"        exit 9fi#####判断jdk路径#########if ! [ -d $JAVA_HOME ]; then        echo "jdk $JAVA_HOME not exist!"        exit 10fiecho -e "\nParameters normal!\n"sleep 2#解压安装包echo "=====================decompression======================="tar -xvf ${BES_FILE}  -C $BES_DIRcd $BES_DIR/BES952/installtar -zxvf BES-9.5.2.4703.tar.gz  -C ${BES_HOME}#JAVAsed -i "8a\ "   ${BES_HOME}/bin/setenv.confsed -i "9a\export  JAVA_HOME=$JAVA_HOME"   ${BES_HOME}/bin/setenv.confsed -i "10a\export  PATH=\$PATH:\$JAVA_HOME/bin"  ${BES_HOME}/bin/setenv.confsed -i "11a\ "  ${BES_HOME}/bin/setenv.conf#导入证书#echo "================import license======================"#cd ${BES_HOME}/bin#./lmadm import-lic  --sourcepath=${BES_HOME}/license/bes.lic.txt#./lmadm view-lic#echo ""#修改passportecho "==================change passport========================"cd ${BES_HOME}/bin./iastool --user admin --password B#2008_2108#es --passport B#2008_2108#es change --passport --oldpassword  B#2008_2108#es --newpassword B@20211225es  --confirmnewpassword  B@20211225esecho ""#初始化应用服务器实例配置echo "===================  initstore  ========================="./config --user=admin  --password=B#2008_2108#es --adminuser=admin  --adminpassword=Hello123!  --adminhost=0.0.0.0 --adminport=${CONSOLE_PORT:=19200} --userhost=0.0.0.0  --userport=${HTTP_PORT:=28080}echo ""#启动BESecho "===================  start bes  ========================="./iastool --user=admin --passwordfile ${BES_HOME}/conf/.password --port ${CONSOLE_PORT:=19200} start --serverecho ""#创建server的zabbix用户echo "====================add user zabbix======================"./iastool --passwordfile ${BES_HOME}/conf/.password  --port ${CONSOLE_PORT:=19200} create --file-user --realmname admin-realm --userpassword Zabbix123! --confirmpassword Zabbix123! --groups besadmin zabbixcd  ${BES_HOME}/conf/securitysed -i '/zabbix/s/besadmin//' admin-keyfileecho ""#修改server的JVM大小echo "===================change server jvm====================="cd ${BES_HOME}/bin./iastool  --user=admin --passwordfile ${BES_HOME}/conf/.password   --port ${CONSOLE_PORT:=19200} update --jvm-options --xmx 5120 --xms 2048 --metaspacesize 5120 --maxmetaspacesize 2048echo ""#修改server的线程池echo "===============change server threadpool=================="./iastool --user=admin --passwordfile ${BES_HOME}/conf/.password   --port ${CONSOLE_PORT:=19200}  update  --thread-pool   --maxthreads 200 --minsparethreads 10  http-thread-poolecho ""#开启server的access logecho "================open server accesslog===================="./iastool --user=admin --passwordfile ${BES_HOME}/conf/.password   --port ${CONSOLE_PORT:=19200}  update --http-service  --globalaccesslogenabled trueecho ""#修改jmx端口echo "==================change jmx port ======================="./iastool --user=admin --passwordfile ${BES_HOME}/conf/.password  --port ${CONSOLE_PORT:=19200} update --jmx-connector --listenerport ${JMX_PORT:=10081}echo ""#创建启停脚本echo "==============create start/stop scripts=================="cd ${BES_HOME}cat > stopbes.sh < startbes.sh <Wordfile $BES_HOME/conf/.password --port ${CONSOLE_PORT:=19200} start --serverecho ""EOFchmod 750 stopbes.shchmod 750 startbes.sh#复制数据库驱动包echo "================copy jdbc jar======================="cd ${BES_HOME}/install/jdbcdrivercp ojdbc6.jar Mysql-connector-java-5.1.29-bin.jar ${BES_HOME}/libecho ""#安装补丁echo "================install patch========================"cd ${BES_HOME}/bin./patch -path ${BES_HOME}/install/instancepatch/./patch -listecho ""#修改控制台超时时间echo "==============console timeout======================="cd ${BES_HOME}/lib/system/apps/console/WEB-INFsed -i 's/30/15/g' web.xmlecho ""#重启echo "================restart all========================="cd ${BES_HOME}sh stopbes.shsh startbes.shecho ""#cd ${BES_HOME}/../#mv BOSH-BES952-standalone-install.tar  bes952_standalone_install_v1.0.sh ${BES_HOME}/installecho -e "\nprocess status:\n"ps aux|egrep -v "grep|$0"|grep BES952pid=`ps aux|egrep -v "grep|$0"|grep BES952|awk '{print $2}'`sleep 1echo -e "\nport listen:\n"for a in $pid;do netstat -NLPt|grep $a;sleep 1;doneecho ""echo ""echo "================install bes end======================"echo "0"

安装成功后,就可以访问到应用的控制台了,默认地址为:Http://ip:19200/console,登录用户名密码默认为admin/Hello123!(如果自己改过默认密码,则按自己的来。)

 进入控制台后,就可以通过应用管理-常用应用来部署项目包了。根据提示一步步往下点击就可以。

整合方案: 

第一种: 之前在网上找资料看到说SpringBoot部署宝兰德有jar包的改造,这里就想说明下,如果最终应用要部署在bes单实例或者集群版本的话,即通过控制台部署应用,就不能集成宝兰德的内嵌包,否则会造成jar包冲突。即com.bes.enterprise.logging.internal.Log: Provider com.bes.enterprise.jul.fORMatter.log.BESASLog not a subtype 这个问题也坑了我好久。

bes和Tomcat中间件针对springboot的部署方式一致的,因此这种情况,不需要做单独的改造

第二种: 只有单集成宝兰德时,才需要在项目中添加相应的jar包,如下所示(程序包由宝兰德提供,不要自己傻傻的从宝兰德安装包中找,因为我这么干过,不想大家再走弯路)

包名说明
bes-lite-spring-boot-2.x-starter-9.5.2核心包,必须
bes-actuator-spring-boot-2.x-starter-9.5.2.jar监控包,可选
bes-websocket支持 webSocket
bes-gmssl国密安全包,可选
bes-jasper支持jsP,可选
bes-jdbcra支持JDBC ,可选

项目pom中去掉 spring-boot-starter-web 的 tomcat依赖,将上面用到的包放到自己的私服后,在pom中添加如下内容:

com.bes.appserverbes-lite-spring-boot-2.x-starter9.5.2com.bes.appserverbes-websocket9.5.2

 应用启动时,打印出以下信息,就说明改造成功了:

 websocket问题解决:

因为我们项目中用到了websocket,因此在控制台部署时候,遇到了启动失败的问题Caused by: java.lang.IllegalStateException: No suitable default RequestUpgradeStrategy found,其实是因为spring-websocket对于第三方的接入不太友好,限制了只能使用tomcat,这种情况的话,如果是通过xml配置的话,可以通过配置handshakeHandler解决(具体参考jetty的接入方案),但是如果是通了Bean配置的,那就只能通过重写spring-websocket的org.springframework.web.socket.server.support.DefaultHandshakeHandler类来解决问题

 通过配置WEB-INF/bes-web.xml来确保bes使用上面重写的这个jar包

 bes-web.xml内容如下:

            

修改完成后,重新部署应用即可,可以通过应用名称,看到应用的访问链接

以下就是本次宝兰德变更涉及到的全部内容,如有问题,欢迎提问。

来源地址:https://blog.csdn.net/u010496402/article/details/127052552

--结束END--

本文标题: 宝兰德BES安装及Springboot项目打包部署及websocket解决方案

本文链接: https://www.lsjlt.com/news/391972.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作