当前位置:论坛首页 > Linux面板 > Linux面板教程

宝塔 新版Java 项目部署教程

发表在 Linux面板2021-9-15 10:58 [复制链接] 48 2836

此功能已经上线到测试版本。请更新到测试版本7.8.20

微信图片_20210930093054.png


Java 项目从插件到内置到程序中。页面如下:
微信截图_20210915112305.png


功能如下:
支持一键启动Spring boot 项目。 tomcat 内置项目  tomcat 独立项目


一、简介

Spring boot 项目只需要JDK 环境即可部署成功
Tomcat 内置项目是需要安装Tomcat 才能部署成功
Tomcat 独立项目是需要安装Tomcat 才能部署成功。一个项目一个Tomcat独立运行互相不会影响其他的tomcat项目


二、部署Springboot 项目 【前提是需要系统存在JDK

这里测试用的是jenkins  从jenkins 官网下载的最新版的war包

https://ftp.belnet.be/mirror/jenkins/war/2.312/jenkins.war

文件放在了/tmp 下面
QQ截图20210915112749.png

选择完成之后。会自动给你填充启动命令。如果你需要修改启动命令是可以任意修改的
QQ截图20210915113003.png

默认的启动命令如下:
  1. /usr/java/jdk1.8.0_281/bin/java -jar -Xmx1024M -Xms256M  /tmp/jenkins.war --server.port=8656
复制代码
启动命令讲解
/usr/java/jdk1.8.0_281/bin/java    JDK 的路径

-Xmx1024M -Xms256M   限制最大内存为1024M  最小内存256M

--server.port=8656      启动的端口


可以任意修改启动命令和参数。例如我改成如下进行启动
  1. /usr/java/jdk1.8.0_281/bin/java -jar -Xmx1024M -Xms256M  /tmp/jenkins.war --httpPort=6312
复制代码

提交完成之后会在页面中查看项目是否启动成功
QQ截图20210915113517.png

端口刚启动的时候会展示不了。需要等待项目完整启动后才能展示启动的端口
QQ截图20210915113709.png


访问项目  ip:端口
QQ截图20210915113809.png

如果需要80 访问。需要添加域名并开启外网映射如下:
QQ截图20210915114030.png

微信截图_20210915114302.png

开启成功后 访问测试一下

微信截图_20210915114409.png




二、部署Tomcat 内置项目


2.1内置项目简介
内置项目可以设置多个项目。缺点在于多个项目之间可能会导致冲突。支持Tomcat7 tomcat8 tomcat9  

乌班图和Debian  不支持Tomcat7     仅支持Tomcat8 Tomcat9
Centos7 Centos8  支持Tomcat7  tomcat8 tomcat9  


安装Tomcat 如下:
QQ截图20210916144435.png

点击安装即可
QQ截图20210916144837.png

安装完成之后即可看到Tomcat 的启动状态和端口信息
QQ截图20210916144933.png



2.2新建内置项目

QQ截图20210916145433.png

提交即可启动项目
启动完成之后即可看到项目的具体的占用信息
QQ截图20210916145523.png

2.3 上传war 或者上传网站压缩包



这里用两个案例来测试。
2.3.1 测试index.jsp
QQ截图20210916150009.png


测试访问test.com
QQ截图20210916150209.png

测试jenkins.war   在tomcat 上面运行的效果
https://ftp.belnet.be/mirror/jenkins/war/2.312/jenkins.war

下载之后。放到我的网站根目录中。然后进行解压
QQ截图20210916150806.png


QQ截图20210916150842.png


解压完成之后。删除掉当前的war 包。或者移动到其他目录即可

需要先重启Tomcat 才能访问到项目
QQ截图20210916151140.png

之后进行访问网站。
QQ截图20210916151323.png



三、部署Tomcat 独立项目

3.1 简介
独立项目 可以单独一个项目启动一个Tomcat  

优点:单独占用资源。不会影响其他项目
缺点:占用资源比内置项目大

乌班图和Debian  不支持Tomcat7     仅支持Tomcat8 Tomcat9
Centos7 Centos8  支持Tomcat7  tomcat8 tomcat9  

安装Tomcat 如下:


点击安装即可


安装完成之后即可看到Tomcat 的启动状态和端口信息



3.2 创建独立项目
QQ截图20210916151805.png

创建完成之后可以看到当前项目占用的CPU和内存信息
QQ截图20210916151928.png


2.3 上传war 或者上传网站压缩包

这里用两个案例来测试。
2.3.1 测试index.jsp
QQ截图20210916152202.png

单个index.jsp 项目是不需要重启项目的。
直接可以进行访问

访问成功如下:
QQ截图20210916152247.png

2.3.2 测试jenkins.war


首先需要把war包上传到网站跟目录。然后进行解压

QQ截图20210916152604.png

QQ截图20210916152644.png


解压完成之后记得重启当前的项目如下:
QQ截图20210916153005.png


重启完成之后访问网站
QQ截图20210916153055.png




四、问题汇总



4.1 问题一:如果没有域名只想用IP+端口的方式进行项目部署

可以把war 包放入到tomcat webaps 目录中进行解压。如下:

tomcat 的安装目录和端口如下:
tomcat7 安装目录在/usr/local/bttomcat/tomcat7      端口号8231
tomcat8  安装目录  /usr/local/bttomcat/tomcat8       端口号8232

tomcat9   安装目录 /usr/local/bttomcat/tomcat9    端口号8233  


4.1.1 Tomcat8没有域名的情况下部署jenkins【一】

首先需要进入到/usr/local/bttomcat/tomcat8/webapps

然后新建一个目录。然后上传你的war 包。


QQ截图20210916154431.png

解压之后记得删除那个war包。

解压完成之后重启一下tomcat 即可访问项目
QQ截图20210916154605.png


然后访问 Ip:8232/你建立的目录

例如。我的IP为192.168.1.72  我新建的目录为test 那么URL如下:

http://192.168.1.72:8232/test

QQ截图20210916154742.png


4.1.2 Tomcat8没有域名的情况下部署jenkins【二】


使用Tomcat manager 进行项目部署


Tomcat 内置的有一个manager 项目管理的。如下


QQ截图20210916154935.png

开启的 详细教程如下:
https://blog.csdn.net/feinifi/article/details/80704564







4.1 问题二:为什么项目启动失败


请多看报错信息


QQ截图20210916155732.png






4.3 问题3:怎么支持SSL


新版本的Java 项目 支持一键申请SSL证书。


QQ截图20210916155852.png


4.3 问题4:怎么突然502 了


502 的问题有很多种。大多数是后端的问题。有可能是你项目端口填写错误。也有可能是Java 后端服务挂了。多方面的问题。

























使用道具 举报 只看该作者 回复
yy8211011 发表于 2021-11-20 17:32
相同步骤启动项目提示这个

把server.port 改成--httpPort=6312
使用道具 举报 回复 支持 反对
yy8211011 发表于 2021-11-20 17:32
相同步骤启动项目提示这个

jenkins 不能使用--server.port  的方式设置端口
使用道具 举报 回复 支持 反对
发表于 7 天前 | 显示全部楼层
微信截图_20211120173019.png
相同步骤启动项目提示这个
微信截图_20211120173206.png
使用道具 举报 回复 支持 反对
发表于 2021-11-11 14:34:52 | 显示全部楼层
宝塔用户_fzhjza 发表于 2021-11-11 12:51
出错了,面板运行时发生错误!
NotADirectoryError: [Errno 20] Not a directory: '/www/wwwroot/springb ...

好的,我等会一并测试下。
使用道具 举报 回复 支持 反对
发表于 2021-11-11 12:51:27 | 显示全部楼层
谢花郎 发表于 2021-11-11 11:27
这边测试,感谢反馈

出错了,面板运行时发生错误!
NotADirectoryError: [Errno 20] Not a directory: '/www/wwwroot/springboot/SpringBoot-1.0.jar'
REQUEST_DATE: 2021-11-11 12:47:24
PAN_VERSION: 7.8.25
  OS_VERSION: CentOS  7.9.2009 x86_64(Py3.7.9)
REMOTE_ADDR: 113.81.104.42
REQUEST_URI: POST /ssl?action=Completed
REQUEST_FORM: {'partnerOrderId': 'rIyO6lL7', 'siteName': 'SpringBoot-1'}
  USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44
Traceback (most recent call last):
  File "/www/server/panel/BTPanel/__init__.py", line 1708, in publicObject
    return run_exec().run(toObject, defs, get)
  File "/www/server/panel/BTPanel/__init__.py", line 1656, in run
    result = getattr(toObject,get.action)(get)
  File "class/panelSSL.py", line 640, in Completed
    runPath = self.GetRunPath(get)
  File "class/panelSSL.py", line 601, in GetRunPath
    result = panelSite.panelSite().GetSiteRunPath(get)
  File "class/panelSite.py", line 4542, in GetSiteRunPath
    for filename in os.listdir(sitePath):
NotADirectoryError: [Errno 20] Not a directory: '/www/wwwroot/springboot/SpringBoot-1.0.jar'

JAVA项目管理里面的SSL,宝塔SSL添加域名后验证域名就会出现这个问题,还会导致整个网站无法访问
使用道具 举报 回复 支持 反对
发表于 2021-11-11 11:27:42 | 显示全部楼层
mx8 发表于 2021-11-10 22:58
还是不能修改jar包路径吗?
不然名称一改就得删了重建

这边测试,感谢反馈
使用道具 举报 回复 支持 反对
发表于 2021-11-10 22:58:21 | 显示全部楼层
还是不能修改jar包路径吗?
不然名称一改就得删了重建
使用道具 举报 回复 支持 反对
发表于 2021-11-9 16:34:52 | 显示全部楼层
宝塔用户_kbwysk 发表于 2021-11-9 11:13
我发现一个问题
【背景】为了使用nginx代理tomcat只能使用一级路径    /
location / {

暂时没有考虑没有域名的情况下。如果你是作为测试。那么你就使用本地Host的方式去测试
使用道具 举报 回复 支持 反对
发表于 2021-11-9 14:45:23 | 显示全部楼层
我发现一个问题
【背景】为了使用nginx代理tomcat只能使用一级路径    /
location / {
....
}
【原因】所以区分是tomcat还是nginx只能用 域名来区分了,在没有域名的情况下只能直接访问 tomcat才行,不能使用nginx代理。
【诉求】目前没有域名的情况下只能将 war 包放到 webapp中有些不合理,应该可以使用tomcat 的虚拟路径映射过去,让没有域名的用户也可以吧项目放在任意位置,然后自动解压。
使用道具 举报 回复 支持 反对
发表于 2021-11-9 11:13:18 | 显示全部楼层
我发现一个问题
【背景】为了使用nginx代理tomcat只能使用一级路径    /
location / {
....
}
【原因】所以区分是tomcat还是nginx只能用 域名来区分了,在没有域名的情况下只能直接访问 tomcat才行,不能使用nginx代理。
【诉求】目前没有域名的情况下只能将 war 包放到 webapp中有些不合理,应该可以使用tomcat 的虚拟路径映射过去,让没有域名的用户也可以吧项目放在任意位置,然后自动解压。
使用道具 举报 回复 支持 反对
发表于 2021-11-9 09:12:43 | 显示全部楼层
宝塔用户_aldetf 发表于 2021-11-8 11:06
springboot项目,端口自定义后,命令里面的端口号不会自动修改,并且在选择jdk等操作后,端口又会随机变 ...

您联系下开发QQ,具体可以先他反馈。开发很少看帖子的
使用道具 举报 回复 支持 反对
发表于 2021-11-8 11:06:28 | 显示全部楼层
宝塔技术-小强 发表于 2021-10-18 10:26
能清楚的描述一下。反向代理的问题在哪里。可以联系qq 1249648969

springboot项目,端口自定义后,命令里面的端口号不会自动修改,并且在选择jdk等操作后,端口又会随机变一个。项目jdk这里,选择后下拉框不会收回去,safari 13
反向代理那个问题,由于前后端分离后 后端没有页面,所以默认反向代理第一段是不需要的
使用道具 举报 回复 支持 反对
发表于 2021-11-8 10:51:14 | 显示全部楼层
springboot项目,端口自定义后,命令里面的端口号不会自动修改,并且在选择jdk等操作后,端口又会随机变一个。项目jdk这里,选择后下拉框不会收回去,safari 13


使用道具 举报 回复 支持 反对
发表于 2021-10-29 12:26:29 | 显示全部楼层

确实如此,
使用道具 举报 回复 支持 反对
发表于 2021-10-19 14:20:37 | 显示全部楼层
724278277 发表于 2021-10-19 11:47
之前用一件部署插件都挺好的,今儿心血来潮用这个弄了下,启动不了呢。

启动不了。看报错信息。
使用道具 举报 回复 支持 反对
1234下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表