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.hqwc.cn/news/152297.html

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

相关文章

【SpringCloudNetflix】一图理解Spring Cloud Netflix解决了那些微服务问题?

什么是微服务理解: SpringCloudNetflix解决的问题理解: SpringCloudNetflix核心点: 注册中心:Eureka负载均衡:Ribbon、Feign服务熔断:Hystrix服务降级:Hystrix服务监控:Hystrix Da…

MatlabR2019b安装教程

下载安装包关闭网络。关闭防火墙。在“Windows安全中心”关闭病毒防护。 然后解压安装包。“R2019b_win64”是安装文件,“crack”是破解文件。 进入“R2019b_win64”文件夹,选中“setup”,鼠标右击选择【以管理员身份运行】。 选择【使用文件…

Glide原理

本文基于Carson整理 1.简介 相比其他几种图片加载框架,Glide性能最好。这得益于其高效的图片缓存策略 其还有多样化的媒体格式加载:如GIF、Video,对于商城首页需展示丰富样式、信息的页面需求来说,也是必不可少的。 2.加载原理…

mathtype怎么更改编号 mathtype章节编号错乱怎么办

mathtype作为一款功能强大的公式编辑器,使用范围广泛,与多款软件兼容。但新手可能会对mathtype的操作不熟悉,不知道如何在mathtype中更改编号,以及解决章节编号错乱问题。本文将围绕mathtype怎么更改编号,mathtype章节…

如何用个人数据Milvus Cloud知识库构建 RAG 聊天机器人?(上)

生成式人工智能时代,开发者可以借助大语言模型(LLM)开发更智能的应用程序。然而,由于有限的知识,LLM 非常容易出现幻觉。检索增强生成(RAG)https://zilliz.com/use-cases/llm-retrieval-augmented-generation 通过为 LLM 补充外部知识,有效地解决了这一问题。 在 Chat …

[红蓝攻防]MDOG(全新UI重制版)为Xss跨站而生,数据共享,表单劫持,URL重定向

说明 功能Cookie窃取表单劫持(钓鱼账密)重定向流量劫持多平台数据推送钉钉数据推送 运行窗口 ./dist目录下已生成exe文件,双击打开 Cookie窃取 点击运行服务,复制以上的payload,payload怎么变形那么你可已去混淆 payload在页面执行 受害者访问存在xss漏洞的页面时受到攻击,…

【AD9361 数字接口CMOS LVDSSPI】A 并行数据之CMOS

〇、综述 本章介绍并行数据端口(P0_D P1_D)和串行外设接口(SPI),用于在AD9361和BBP之间传输数据和控制/状态信息。 下图显示了这些接口,并提供了AD9361和BBP在宽带无线系统中的使用方式的高级视图。数据接…

【图解 LeetCode 房屋染色 动态规划思想 + 代码实现】

LeetCode 房屋染色 动态规划 问题描述: 假如有一排房子,共 n 个,每个房子可以被粉刷成 k 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同&#x…

MAC下安装Python

MAC基本信息: 执行命令: brew install cmake protobuf rust python3.10 git wget 遇到以下问题: > Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/rust-1.59.0 Already downloaded: /Users/xxxx/Library/Caches/Ho…

SpringCloud Alibaba【三】Gateway

Gateway配置与使用 前言新建gateway子项目pom.xml配置文件启动类访问接口方式 测试拓展 前言 在工作中遇到一种情况,一个父项目中有两个子项目。实际使用时,需要外网可以访问,宝信软件只能将一个端口号发布在外网上,所以需要运用…

Angular-04:指令

① 内置指令1.1 *ngIf 结构指令1.2 [hidden] 属性指令1.3. *ngFor 结构指令1.4 *ngSwitch 结构指令 ② 自定义指令用法 指令是angular操作dom的途径,分为属性指令和结构指令。属性指令:修改元素的外观或行为。使用 [ ] 包裹。结构指令:增加、…

Redis实现消息队列

使用Redis中的list实现消息队列 list是Redis的一种数据结构,可以把它理解成双向链表 可以从头部插入数据然后从尾部取出数据,从而实现消息队列的效果 利用命令 LPUSH和RPOP (从左边插入数据从右边取出数据) lpush l1 e1 e2rpo…