docker版jxTMS使用指南

news/2025/2/11 7:31:47/

jxTMS是以低成本快速定制为核心诉求的、SaaS模式的业务管理系统二次开发平台,可参考:jxTMS简介。建议使用前先阅读:jxTMS设计思想,以更好的使用jxTMS。

本次发布为docker版本,本系列文章主要介绍docker版本的简单使用:

helloWorld!

helloWorld!讲解

数据库访问

静态web界面

勾连python

导入excel文件

图表显示

准备

1、下拉镜像

因为是docker版本,所以只要下拉相应的镜像而免去了安装与配置的麻烦:

docker pull jxandrew/tms

镜像因为预装了java、mysql和rabbitMQ等环境依赖,所以比较大,请耐心等待。

2、启动容器

镜像下拉成功后,执行:

docker run -itd --name tms --privileged=true -p 10022:22 -p 10018:10018 jxandrew/tms 

即可启动一个名为tms的容器。该容器使用到了三个端口:

  • 10022端口,该端口映射到容器的22端口,用于ssh/sftp。其中ssh主要用于显示log,sftp主要用于上传定制代码

  • 10018端口,是web访问的主端口

tms容器启动后,可执行:

docker attach tms

连接到tms容器的root用户控制台,某些时候我们需要通过该控制台执行一些任务。

注:在该root用户控制台退出时,即执行了exit命令,可能会同时自动关闭tms容器

关闭容器,可执行:

docker stop tms

容器关闭后,如需再次启动,则执行:

docker start tms

3、启动jxTMS

启动容器:

docker start tms

连接到tms容器的root用户控制台:

docker attach tms

启动jxTMS,可执行下述命令:

#进入tms所在目录
cd /home/tms
#启动jxTMS
./startTMS

startTMS是一个unix的shell脚本:

#!/bin/bash
service ssh start
service mysql start
cd /var/run
rm -f rsync*
service rsync start
service rabbitmq-server start
cd /home/tms
java -jar tms.jar&

注1:rabbitMQ启动时间很长,而且启动完就立刻启动jxTMS,有时还会连不上,所以笔者又在脚本中加了sleep 5以进行等待。如果启动还不成功,要先杀掉jxTMS进程,然后手动执行:java -jar tms.jar&

注2:jxTMS是设计用来作为服务程序一直执行的,所以没有关闭命令,如果想关闭jxTMS需要手动杀掉jxTMS进程:

#查看jxTMS进程号
psg java
#该脚本会显示所有命令行中带java的进程,找到【java -jar tms.jar】所在行,开头的数字就是进程号
#kill 12345

startTMS非常简洁,就是依次启动sshd、mysql、rsync、rabbitmq四个服务,然后用java来启动jxTMS的jar包。

注:jxTMS是以java8开发的,千万不要升级java环境

rabbitMQ启动时间很长,所以启动过程需要花费几分钟的时间,请耐心等待一下。脚本执行完毕,会有大量的log信息出现,忽略log中的日期和代码位置等信息后,最后会出现:

org.demoOrg_2255【org/demoOrg_2255】添加到目录中
org.demoOrg_2255 register:ok/服务器正常响应
org.demoOrg_2255 connected

看到这些信息,就表明jxTMS启动成功,同时我们预先创建的组织【demoOrg_2255】也已经成功注册到jxTMS中,我们就可以登录到该组织中开始使用了。

注:如果长时间不动,控制台可能会有如下报错:

** BEGIN NESTED EXCEPTION ** javax.net.ssl.SSLException
MESSAGE: closing inbound before receiving peer's close_notifySTACKTRACE:......** END NESTED EXCEPTION **

该报错其实是mysql连接池在释放多余的连接,忽略即可。

4、系统日志

上述报错信息会影响对系统运行情况的观察,同时控制台log如果数据量太大,如启动日志,前面的日志信息就会看不到了。可执行如下命令来查看系统日志:

cd /home/tms/logs
#查看实时日志
tail -f rolling.log 
#查看倒数xxx行的日志,同时可以分页慢慢看
tail -n xxx rolling.log | more
#从头分页看日志,但数量比较多,不好定位
more rolling.log

注:系统日志中只包含平台相关的log信息,开发者一般是不需要关心系统日志,而更关心的是自己所需定制的组织的日志信息。各组织的运行信息和用户操作信息由组织日志提供,后面会予以具体讲解

参考资料:

jxTMS设计思想

jxTMS编程手册

下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:

如何用jxTMS开发一个功能

下面的系列文章讲述了jxTMS的一些基本开发能力:

jxTMS的HelloWorld


http://www.ppmy.cn/news/33332.html

相关文章

硬刚ChatGPT!文心一言能否为百度止颓?中国版ChatGPT“狂飙”的机会在哪儿?

文章目录目录产品背景发展历程科技简介主要功能合作伙伴结语文心一言 (英文名:ERNIE Bot) *是百度基于文心大模型技术推出的生成式对话产品,被外界誉为“中国版ChatGPT”,将于2023年3月份面向公众开放。 [40] 百度在人…

[前端笔记035]vue2之脚手架vue-cli

前言 本笔记参考视频,尚硅谷:BV1Zy4y1K7SH p61 - p95 简介 Vue 脚手架是 Vue 官方提供的标准化开发工具,vue-cli使用步骤 如果下载缓慢请配置 npm 淘宝镜像:npm config set registry http://registry.npm.taobao.org全局安装vue/cli&#…

图形视图框架的坐标

图形视图基于笛卡尔坐标系;项目在场景中的位置和几何图形由两组数字表示:X 坐标和 Y 坐标。使用未变换的视图观察场景时,场景上的一个单元由屏幕上的一个像素表示。 图形视图中有三种有效的坐标系: 项目坐标场景坐标视图坐标为了简化实现图形…

Golang如何比较两个slice是否相等?

文章目录1、为什么在Golang中无法直接使用来比较两个slice?2、如何实现两个slice的比较呢?2.1 深度比较2.2 使用reflect.DeepEqual函数3、扩展:如何在map中让slice充当key?⭐️1、为什么在Golang中无法直接使用来比较两个slice&am…

第十四届蓝桥杯三月真题刷题训练——第 16 天

目录 第 1 题:英文字母 问题描述 输入格式 输出格式 样例输入 1 样例输出 1 样例输入 2 样例输出 2 评测用例规模与约定 运行限制 代码: 第 2 题:单词分析 题目描述 输入描述 输出描述 输入输出样例 运行限制 数组代码&…

黏菌算法优化程序

import numpy as np from matplotlib import pyplot as plt import SMA 适应度函数 def fun(X): Results np.sum(X ** 2) return Results 主函数 # 设置参数 pop 30 # 种群数量 MaxIter 500 # 最大迭代次数 dim 2 # 维度 lb -10 * np.ones(dim) # 下边界 ub…

【Linux】软件包管理器 yum

什么是软件包和软件包管理器 在 Linux 下需要安装软件时, 最原始的办法就是下载到程序的源代码, 进行编译得到可执行程序。但是这样太麻烦了,所以有些人就把一些常用的软件提前编译好, 做成软件包 ( 就相当于windows上的软件安装程序)放在服…

vue的diff算法?

文章目录是什么比较方式原理分析Diff算法的步骤:首尾指针法比对顺序:是什么 diff 算法是一种通过同层的树节点进行比较的高效算法 其有两个特点: 比较只会在同层级进行, 不会跨层级比较 在diff比较的过程中,循环从两边向中间比较…