Linux之J2EE的项目部署及发布

目录

前言

 一、会议OA单体项目windows系统部署

1.检验工作

1. 检验jar项目包是否可以运行

2. 验证数据库脚本是否有误

3. 测试项目功能

2. 部署工作

2.1 传输文件

2.2  解压项目及将项目配置到服务器中

 2.3 配置数据库

 2.4 在服务器bin文件下点击startup.bat启动项目

3. 主机访问项目

 二、Windows部署SPA前后端分离项目

1. 准备工作

2. 部署前后端分离项目

2.1 创建数据库及添加数据

2.2 加载后端项目

2.3 加载前端项目文件

 配置node.js及配置环境

 2.4 加载前端项目尝试访问

 解决方案

方案一:利用nginx做反向代理处理该问题

 方案二:


前言

        在上一期的Linux博客中我与老铁们分享了有关虚拟机的安装及配置、系统的安装、主机远程连接虚拟机、配置虚拟机的环境变量等等。本期的博客分享基于上期的博客,本期博客分享的是J2EE的项目部署及发布,本期博客逻辑性强、需要老铁们耐心琢磨。

 一、会议OA单体项目windows系统部署

1.检验工作

1. 检验jar项目包是否可以运行

        将我们的项目包复制到tomcat服务器安装目录下的webapps文件下,在bin文件下点击startup.bat启动服务器加载项目,保存项目在本机的服务器上能够运行。

 

 

 

         在网页中去访问项目并且进行测试,验证项目是否有误。

2. 验证数据库脚本是否有误

         在我们的数据库中新建一个相应的数据库,然后运行数据库脚本文件进行检验。

 

3. 测试项目功能

2. 部署工作

2.1 传输文件

        将要部署的项目文件赋值到共享文件中,方便虚拟机的调用。

 

2.2  解压项目及将项目配置到服务器中

        将项目解压后,最好将项目的名称修改为英文名称。

 

        将解压后的项目包配置到服务器的wedapps的文件中

 2.3 配置数据库

        在本机连接虚拟机的数据库中去部署配置项目数据。创建对应的数据库,导入运行对应的数据库文件。

 

 2.4 在服务器bin文件下点击startup.bat启动项目

3. 主机访问项目

        在主机中访问虚拟机部署的项目。 

 

        但是会显示账号不存在,此时虚拟机那边的命令窗口会出现一个错误,如下所示。

 

         这个报错表示的是数据库密码错误,需要我们去修改我们项目中配置数据库连接的文件件。

 

        看过上期博客的老铁都知道,我们在上期博客注册数据库是设置的密码是123,而项目文件配置数据库连接的文件中的密码是123456,因此将密码改为123即可。 然后再重新启动服务器加载项目。

 

        这就代表我们的会议oa部署完成成功。 

 二、Windows部署SPA前后端分离项目

1. 准备工作

        将本机服务器安装目录下的webapps文件清理干净,删除之前部署的项目文件。

 

        将我们的前后端分离项目的项目包方到webapps文件夹中,会议OA项目类似在本机的服务器上进行测试。

 

         在bin文件中点击startip.bat进行启动服务器加载项目,在网页访问页面

 

         上述图片是因为我开启了JWT认证,所以会出现这种情况,这就是后端验证,接下来是前端验证。首先将数据库新建好并导入数据

 

         接下来就是启动服务器加载项目,启动spa项目。

 

2. 部署前后端分离项目

2.1 创建数据库及添加数据

        在虚拟机中创建项目数据库,加载项目数据

2.2 加载后端项目

        解压项目文件,将项目加载到服务器中

 

         配置项目的数据库连接文件

 

 保证创建的数据库名与配置文件中的数据库名一致,以及账号密码也要一致。然后启动项目,在主机进行访问。

 

         出现JWT验证失效则表示,后端加载完成。

2.3 加载前端项目文件

 配置node.js及配置环境

         然后对node.js进行一系列设置,具体操作可看我的往期博客中有专门的细节。

 2.4 加载前端项目尝试访问

        加载之后在主机访问项目时,会发现一个问题。在主机中的浏览器不能访问虚拟机中的前端项目。是因为主机在虚拟机中的前端项目的被端口限制了的问题。解决以下问题呢,有一些两种方法可以解决。(效果如下)

 

 解决方案

方案一:利用nginx做反向代理处理该问题(从实施的角度)

在nginx文件中找到nginx.conf 文件,将文件种的 location 进行修改,将端口代理访问

#access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://localhost:8081;
        }

#error_page  404              /404.html;

  可以在nginx的官网进行下载,解压使用即可 : Nginx官网​编辑https://nginx.org/en/download.html

 

nginx.conf全部代码

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass   http://localhost:8081;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

         然后在访问项目,效果如下

 方案二:(开发的角度)

在前端项目的路径中,找到index.js文件,将端口改为开放式的端口,在前端路径下的跟目录中的 config 文件中.

打开 index. js 文件,找到 location  配置端口的位置,修改为 : 0.0.0.0

如图 :

 之后重新访问项目如图下

 

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

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

相关文章

时序预测 | Python实现ARIMA-LSTM差分自回归移动模型结合长短期记忆神经网络时间序列预测

时序预测 | Python实现ARIMA-LSTM差分自回归移动模型结合长短期记忆神经网络时间序列预测 目录 时序预测 | Python实现ARIMA-LSTM差分自回归移动模型结合长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Python实现ARIMA-LSTM差…

docker应用部署---nginx部署的配置

1. 搜索nginx镜像 docker search nginx2. 拉取nginx镜像 docker pull nginx3. 创建容器,设置端口映射、目录映射 # 在/root目录下创建nginx目录用于存储nginx数据信息 mkdir ~/nginx cd ~/nginx mkdir conf cd conf# 在~/nginx/conf/下创建nginx.conf文件,粘贴下…

【转信创】银河麒麟:系统安全机制

银河麒麟执行脚本时一直显示权限不足,可能需要修改安全状态。 查看当前kysec的相关安全状态: getstatus 修改当前Kysec的相关安全状态: # 设置Kysec安全状态为软/强制模式; sudo setstatus softmode/normal # 关闭执行控制功能…

数据库简史:多主数据库架构的由来和华为参天引擎的机遇

注:本文发表后,收到了很多后台反馈,其中关于大型机的早期成就不容省略。微调重发本文,纯属个人观点,错谬之处,仍然期待指正。 2023年10月13日,在北京举办的“2023金融业数据库技术大会"上&…

linux-vsftp虚拟多用户

目录 1.安装vsftp 2.安装DB工具,能转化普通文件为vsftpd识别数据库加密文件 3.创建登录虚拟用户的名单 4.加密文件 6.需要修改vsftpd的配置文件 7.修改vsftp的配置文件,加载支持虚拟用户模式 8.针对不同用户开启不同权限 9.重启服务 10.测试 安…

【C++】STL容器——探究List与Vector在使用sort函数排序的区别(14)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一、Sort函数介绍1.Sort函数接口2.Sort…

buuctf_练[CISCN2019 华东南赛区]Web4

[CISCN2019 华东南赛区]Web4 文章目录 [CISCN2019 华东南赛区]Web4掌握知识解题思路代码分析正式解题 关键paylaod 掌握知识 ​ 根据url地址传参结构来判断php后端还是python后端;uuid.getnode()函数的了解,可以返回主机MAC地址十六进制;pyt…

替换所有的问号

这篇也是凑数的 哈哈.... 稍后会整合到算法通关第三关白银挑战 . 描述 : 给你一个仅包含小写英文字母和 ? 字符的字符串 s,请你将所有的 ? 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。 注意 : 不能 修改非 ? 字符 . 题目 : …

【Linux】第五站:Linux权限

文章目录 一、shell命令以及运行原理二、Linux下用户的分类1.root用户和普通用户的切换2.对一条指令的提权 三、什么叫做权限1.权限2.文件的属性3.文件类型4.权限属性 四、更改权限1. chmod 更改文件的属性2. chown 更改拥有者3. chgrp更改所属组4.chown一次性更改拥有者和所属…

我的创作纪念日 - 2048

机缘 昨天刚刚收到 C 站的 1024 勋章: 今天爬山途中就又收到了 CSDN 的创作 2048 天纪念推送: 虽然 1024、2048 这些数字对普通人来说可能没有意义,但对于程序员来说却有不一样的情结。感谢 C 站这波细心的操作,替程序员的我们记…

接口返回响应,统一封装(ResponseBodyAdvice + Result)(SpringBoot)

需求 接口的返回响应&#xff0c;封装成统一的数据格式&#xff0c;再返回给前端。 依赖 对于SpringBoot项目&#xff0c;接口层基于 SpringWeb&#xff0c;也就是 SpringMVC。 <dependency><groupId>org.springframework.boot</groupId><artifactId&g…

Camtasia mac版怎么加字幕 Camtasia mac版怎么打马赛克

在视频制作过程中&#xff0c;字幕和马赛克是两项非常常用的编辑功能&#xff0c;添加字幕可以提高观众的观看体验&#xff0c;添加马赛克可以保护视频创作者不想公开的画面内容。Camtasia作为一款知名的视频制作软件&#xff0c;在具备基本的录制和视频编辑功能的同时&#xf…

Oracle (7)Online Redo Log Files

目录 一、Oracle Online Redo Log Files及其相关内容介绍 1、Online Redo Log Files简介 2、Online Redo Log Files特点 3、Online Redo Log Files文件组 4、多路复用文件 5、联机重做日志文件工作方式 6、LGWR什么时候写重做 7、LS和LSN 8、删除Redo文件成员 9、删除…

Linux对网络通信的实现

一、NIO为什么很少注册OP_WRITE事件 1、OP_WRITE触发条件&#xff1a;当操作系统写缓冲区有空闲时就绪。一般情况下写缓冲区都有空闲空间&#xff0c;小块数据直接写入即可&#xff0c;没必要注册该操作类型&#xff0c;否则该条件不断就绪浪费cpu&#xff1b;但如果是写密集型…

虚拟技术和容器技术的对比

1.概念 容器技术是一种内核轻量级的操作系统层虚拟化技术&#xff0c;能隔离进程和资源。 虚拟机&#xff08;VM&#xff09;技术是一种创建于物理硬件系统&#xff0c;充当虚拟计算机系统的虚拟环境&#xff0c;该虚拟机可以独 立运行在一个完全隔离的环境中&#xff0c;向本…

华为NAT配置实例(含dhcp、ospf配置)

一、网络拓朴如下&#xff1a; 二、要求&#xff1a;PC1 能访问到Server1 三、思路&#xff1a; R2配置DHCP&#xff0c;R2和R1配OSPF&#xff0c;R1出NAT 四、主要配置&#xff1a; R2的DHCP和OSPF&#xff1a; ip pool 1gateway-list 10.1.1.1 network 10.1.1.0 mask 25…

Android数据对象序列化原理与应用

序列化与反序列化 序列化是将对象转换为可以存储或传输的格式的过程。在计算机科学中&#xff0c;对象通常是指内存中的数据结构&#xff0c;如数组、列表、字典等。通过序列化&#xff0c;可以将这些对象转换为字节流或文本格式&#xff0c;以便在不同的系统之间进行传输或存…

设计模式【Iterator 模式】

Iterator 模式 1.什么是 Iterator 模式 Iterator 模式就是按照顺序遍历数据集合。 2.示例程序 1.Aggregate 接口 Aggregate 接口是要遍历的集合的接口&#xff0c;声明方法 iterator &#xff0c;实现了该接口的类可以通过 iterator 方法遍历数据集合的元素。 public int…

pycharm运行R语言脚本(win10环境下安装)

文章目录 简介1. pycharm安装插件2. 安装R语言解释器2.1下载安装包2.2具体安装过程 3.编辑环境变量4 检验是否安装成功&#xff1a;5.安装需要的library6.pycharm中配置安装好的R语言解释器 简介 pycharm 安装 R language for Intellij R language for Intellij 是一个插件&am…

Java集合类--List集合,Set集合,Map集合

集合可以看作一个容器&#xff0c;Java中提供了不同的集合类&#xff0c;这些类具有不同的存储对象的方式&#xff0c;同时提供了相应的方法&#xff0c;以便用户对集合进行遍历、添加、删除、查找指定的对象。 1.集合类概述&#xff1a; 集合类类似于数组&#xff0c;与数组不…