TongWeb 简介

TongWeb 是东方通(TongTech)开发的国产Java应用服务器(中间件),类似于国外的 WebLogic、WebSphere 和开源的 Tomcat、Jetty,主要用于企业级Java应用(如J2EE)的部署和运行。TongWeb 是信创生态中的重要产品之一,属于国产中间件,符合信创产业的要求。

安装流程

TongWeb是基于Java的,因此需要JDK环境,1.8以上。这里不赘述安装Java过程。

1,获取授权文件和安装包

TongWeb是需要授权的。因此得先去进行企业申请。

申请成功后,可以拿到这三个文件:

TongWeb8.0.9.03 是 标准版

TongWeb8.0.E.7 是 嵌入式版和一些所需的相关依赖

我们主要是用这个标准版,安装到服务器上, 然后用于部署Java应用。

2,上传相应文件,配置授权文件

先将标准版的包传到服务器上:我是放在 /opt/tongweb目录下了。大家可以按自己习惯来部署。

然后进入到TongWeb8.0.9.03 直接将授权文件放进pcenter目录即可,不需要别的配置。

注:我的根目录为 /opt/tongweb/TongWeb8.0.9.03,后面说到的回到根目录就是回到这个目录。大家根据自己情况调整。

3,设置信任IP

登录 TongWeb 管理控制台需要是信任IP,也就是白名单了。我们需要在安装前将远程浏览器访问 TongWeb 的主机 IP 设置为“信任IP”。

cd domains/domain1/conf/       
vim console.xml

 找到trustedIP标签,设置你的访问机IP即可。*表示信任所有机器。

4,修改Linux文件描述符限制

执行该命令看一下当前系统的限制:

ulimit -n

默认是1024,这个不改也能跑,但我建议修改。对Java应用还是很容易到达这个上限的,避免 "Too many open files" 错误。

vim /etc/security/limits.conf

在最后加上这两行即可。 

* soft nofile 65535
* hard nofile 65535

然后重新连接一下ssh。在执行查询,应该就65535了。

5,启动TongWeb

回到根目录,进入bin目录

cd bin
# 赋予执行权限
chmod -R 755 *

执行脚本,后台运行:

./startd.sh

若回显信息出现 “Server startup in xx seconds”,则说明启动 TongWeb 成功。

后面要停止的话,可以执行:

./stopserver.sh

6,登录管理控制台

浏览器访问:https://<部署TongWeb的IP>:9060/console

就可以进入到控制台了:

默认账号密码是:thanos / thanos123.com。动态密码不用填就行。

如果访问失败的话,服务器本地看看能不能访问上:

curl -k https://127.0.0.1:9060/console

如果可以的话,可能是防火墙问题,一个是检查一下云服务器的端口是否开放了。另一个就是系统本身的防火墙,可以用这个命令关掉防火墙试试:

sudo systemctl stop firewalld

为了保障安全,建议登录后到这里修改一下密码:

7,部署应用

我们以现在最常见的前后端分离的项目为例:

部署应用需要打war包。打包方式大家自行网上看一下攻略。

运行前、后端。

我们填好应用名、文件的位置和访问前缀就行,其它默认就好。

如果启动失败了可以看一下tongweb日志:

tail -f /opt/tongweb/TongWeb8.0.9.03/domains/domain1/logs/server/server.log 

正常的话这样就是启动成功了:

点击后面的链接可以看到访问地址。默认格式是 ip:8088/访问前缀(不填就是和应用名一样)

比如我这里前端是esflow-frontend,后端是esflow-api。

前端的访问:ip:8088/esflow-frontend 就是index.html页

同理,访问后端的 ip:8088/esflow-api 就是直接向后端发请求。

因此前端代码中的请求端口,记得改成 /**-api这样。

其它

1,部署应用文件上传怎么打开

到集中管理 - 控制台安全 - 禁用文件上传关掉。

然后重启一下TongWeb即可。

2,修改TongWeb默认控制台端口

默认的控制台端口是9060,请注意,运行期间不能修改,因此要改这个记得先stop,改完再启动。

编辑配置文件:

cd /domains/domain1/conf
vim tongweb.xml

修改port的9060,我这里就是改为了8080:

总结一下:

 快速重启:

cd /opt/tongweb/TongWeb8.0.9.03/bin
./stopserver.sh
./startd.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94194.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94194.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/94194.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust 同步方式访问 REST API 的完整指南

Rust 同步方式访问 REST API 的完整指南 在 Rust 中不使用异步机制访问 REST API 是完全可行的&#xff0c;特别适合简单应用、脚本或不需要高并发的场景。以下是完整的同步实现方案&#xff1a; &#x1f4e6; 依赖选择 推荐库&#xff1a; [dependencies] reqwest { version…

32.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--财务服务--账本与预算

在我们的孢子记账应用中&#xff0c;账本是用于记录每一笔收支流水的核心模块。通过账本&#xff0c;我们可以清晰地追踪资金的流入与流出&#xff0c;进行数据统计和分析&#xff0c;为后续的报表生成和决策支持提供基础数据。预算模块则是用于设置和管理预算的功能&#xff0…

模型预估打分对运筹跟踪的影响

在uplift建模中&#xff0c;模型离线指标(QINI、AUUC)提升并不意味着在线A/B实验的收益&#xff0c;因为在线运筹还需要λ\lambdaλ约束。如果模型打分不满足单调增且roi边际递减&#xff0c;那么λ\lambdaλ运筹求解会非常不稳定&#xff0c;导致线上发券偏高&#xff0c;毛利…

音视频学习(四十六):声音的三要素

声音是人类感知世界的重要途径之一。在自然界中&#xff0c;声波本质上是介质中传播的机械振动&#xff0c;而人类对声音的主观感受主要通过三种属性来认知和描述&#xff0c;即音调&#xff08;音高&#xff09;、响度&#xff08;强弱&#xff09;、音色&#xff08;音质&…

spring batch处理数据模板(Reader-Processor-Writer模式)

步骤监听器 Component public class StepListener implements StepExecutionListener {private StepExecution stepExecution;public StepExecution getStepExecution() {return this.stepExecution;}Overridepublic void beforeStep(StepExecution stepExecution) {this.stepE…

【华为OD机试】从小桶里取球

题目描述 某部门开展Family Day开放日活动,其中有个从桶里取球的游戏,游戏规则如下: 有N个容量一样的小桶等距排开,且每个小桶都默认装了数不等的小球, 每个小桶装的小球数量记录在数组bucketBallNums中, 游戏开始时,要求所有桶的小球总数不能超过SUM, 如果小球总…

std::unordered_map 和 std::map的区别【C++】

std::unordered_map 和 std::map 是 C 标准库中两种不同的关联容器&#xff0c;它们都用于存储键值对&#xff0c;但在实现方式、性能特点和使用场景上存在显著区别。以下是它们的主要区别&#xff1a; 1. 数据结构 std::map&#xff1a; 基于 红黑树&#xff08;一种自平衡二叉…

云原生环境里的显示变革:Docker虚拟浏览器与cpolar穿透技术实战

文章目录前言【视频教程】1. 关于neko2. 本地部署neko3. neko简单使用4. 安装内网穿透5. 配置neko公网地址6. 配置固定公网地址前言 现代远程协作本该是无缝衔接的过程&#xff0c;却被这些障碍不断打断&#xff1a;多设备屏幕同步存在延迟、跨平台访问需要复杂配置、公网IP申…

LVGL + ESP-Brookesia 在Windows下的编译和运行

LVGL ESP-Brookesia 在Windows下的编译和运行 1. 项目介绍 本项目是基于 LVGL&#xff08;轻量级多功能图形库&#xff09;和 ESP-Brookesia 的嵌入式模拟桌面应用开发框架&#xff0c;专为嵌入式设备构建丰富的图形界面而设计。通过在Windows环境下模拟嵌入式设备的图形界面…

【ip】IP地址能否直接填写255?

IP地址数值限制​ 最近有朋友后台问我&#xff0c;IP地址里填255行不行&#xff1f;思索着有一阵子没有分享基础的知识&#xff0c;就在今天大致说一下&#xff0c;关于IP地址里填255行不行&#xff1f;答案当然是否定的。 IP地址由4个段组成&#xff0c;每个段的数值范围其实限…

力扣热题100----------141.环形链表

给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索…

【Java开发日记】我们来说说 LockSupport 的 park 和 unpark

目录 一、LockSupport 1.1、LockSupport函数列表 1.2、基本使用 先 park 再 unpark 先 unpark 再 park 1.3、特点 与 Object 的 wait & notify 相比 二、LockSupport park & unpark原理 2.1、情况一&#xff0c;先调用park&#xff0c;再调用unpark park 操作…

AGI|从“实验室”到“生产线”:企业级AI Agent 如何突围

在数字化转型的深水区&#xff0c;企业级 AI Agent 正从技术概念走向产业实践&#xff0c;成为驱动生产力变革的核心引擎。目录 一、风口已至&#xff1a;AI Agent 的崛起逻辑与市场刚需 二、企业级AI Agent&#xff1a;核心能力与独特价值定位 三、AI Agent 的未来目标 一、…

AtCoder Beginner Contest 417

文章目录A A SubstringB Search and DeleteC Distance IndicatorsD Takahashis ExpectationE A Path in A DictionaryF Random GatheringG Binary CatAtCoder Beginner Contest 417A A Substring You are given an N-character string S consisting of lowercase English lett…

C++23 Concepts:用类型约束重构泛型编程的终极方案

一、开篇:模板元编程的"类型检查困局" 某金融量化团队曾遇到诡异bug: template<typename T> void process(T data) {static_assert(std::is_arithmetic<T>::value, "需要数值类型");// 业务逻辑... } 当调用process("hello")时…

【RK3568 看门狗驱动开发详解】

RK3568 看门狗驱动开发详解一、Linux 看门狗子系统架构​二、设备树配置​三、 看门狗驱动实现四、验证看门狗定时器&#xff08;Watchdog Timer&#xff09;是保障嵌入式系统可靠性的关键硬件&#xff0c;它通过定期接收 “喂狗” 信号监控系统运行状态&#xff0c;当系统故障…

探索 Vue 3.6 新特性:Vapor Mode 与高性能 Web 应用开发

Vue 3.6 简介 Vue.js 是一个广受欢迎的渐进式 JavaScript 框架&#xff0c;以其简洁的 API、灵活的组件系统和高性能著称。Vue 3.6 是 Vue 3 系列的一个重要版本&#xff0c;引入了多项性能优化和新特性&#xff0c;尤其是备受关注的 Vapor Mode&#xff0c;这是一个无需虚拟 D…

初识prometheus

Prometheus&#xff1a;云原生时代的监控利器 在当今快速发展的云原生和微服务架构时代&#xff0c;传统的监控系统面临着巨大的挑战&#xff1a;如何高效地收集海量、动态变化的指标&#xff1f;如何实时告警并快速定位问题&#xff1f;如何实现灵活的可视化和强大的数据查询…

从源码角度分析导致 JVM 内存泄露的 ThreadLocal

文章目录1. 为什么需要ThreadLocal2. ThreadLocal的实现解析1.1 实现分析1.2 具体实现1.3 ThreadLocalMap中Hash冲突的解决1.3.1 Hash冲突解决的几种方法1.3.1.1 开放定值法1.3.1.2 链地址法1.3.1.3再哈希法&#xff1a;1.3.1.4 建立公共溢出区1.3.2 ThreadLocal解决Hash冲突的…

React组件化的封装

1. 组件化封装的结构 1.1. 定义一个类(组件名必须是大写&#xff0c;小写会被认为是html元素), 继续自React.Component1.2. 实现当前组件的render函数 render当中返回的jsx内容&#xff0c;就是之后React会帮助我们渲染的内容 1.3. 结构图如下&#xff1a; data 方法render()…