springboot项目部署到windows,windows设置SpringBoot程序(bat脚本)开机自启
springboot项目部署到windows,windows设置SpringBoot程序(bat脚本)开机自启详细介绍
本文目录一览: springboot打包发布到windows环境上中文乱码
乱码解决方案:
start javaw -Dfile.encoding=utf-8 -jar 项目包名.jar
加上-Dfile.encoding=utf-8即可!!!
在未安装docker环境的windows系统上将springboot项目镜像推送到远程主机
一,修改pom文件
在pom.xml文件中添加以下信息:
org.springframework.boot
spring-boot-maven-plugin
true
com.spotify
docker-maven-plugin
1.0.0
{project.artifactId}
{project.build.directory}
${project.build.finalName}.jar
http://192.168.12.145:2375
二,配置好Dockerfile文件
FROM java:8
MAINTAINER LiXiang
VOLUME /tmp
RUN echo 'Asia/Shanghai' > /etc/timezone
RUN mkdir -p /usr/local/app
COPY sscm-eureka-server-1.0.0.jar app.jar
EXPOSE 8761
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
三,开启远程主机docker远程访问权限
想要开启远程访问,就需要修改下面这个配置文件
vim /usr/lib/systemd/system/docker.service
1,在该文件[services]下增加以下配置:
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
增加完后保存
2,重启服务
systemctl daemon-reload
systemctl restart docker
3,开启防火墙访问权限
以下功能基于您拥有root用户权限
安装:
sudo yum install firewalld firewall-config -y
1
启动、停止、禁用、启用
查看状态:
systemctl status firewalld
1
启动:
systemctl start firewalld
1
停止:
systemctl stop firewalld
1
禁用:
systemctl disable firewalld
1
启用:
systemctl enable firewalld
1
开放端口区间
firewall-cmd --permanent --zone=public --add-port=100-500/tcp
firewall-cmd --permanent --zone=public --add-port=100-500/udp
firewall-cmd --reload
1
2
3
查看开放的端口
firewall-cmd --zone=public --list-ports
1
查看还有哪些服务可以打开
firewall-cmd --get-services
1
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
1
重新载入
firewall-cmd --reload
1
查看
firewall-cmd --zone=public --query-port=80/tcp
1
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
4,在本地使用maven打包命令
mvn clean package docker:build 即可将镜像推送至指定的主机
5,验证
1,打开本地浏览器输入:http://远程ip:2375,如果返回:{"message":"page not found"} 即表示远程端口开放成功
2,远程主机上使用docker images,如果在列表中出现了目标镜像,即表示远程推送成功。
2019-10-10 spring boot 项目部署及指定JDK路径
其实特别简单,只需要在 bin 目录中的 setclasspath.bat 文件前面添加:
如图
可在文本文档(.txt)中新建以下内容
保存为批处理(.bat)文件,即可执行可执行jar包——test.jar
SpringBoot+Docker项目打包(jar)和部署
一、打包SpringBoot项目
1.检查pom文件是否有maven打包插件
2.选择IDEA右侧Maven,点击install(如果配置了maven的环境变量,则可以在控制台输入:mvn install 命令,同样可以打包jar包)
等待maven打包,当控制台出现下列日志时表示打包成功
如下图所示,打包完会出现一个.jar文件,即打包好的jar包。
3.在控制台输入:java -jar /Users/heyou/Desktop/springboot-0.0.1-SNAPSHOT.jar 来检查jar包是否可以正常运行。
二、Docker部署jar包
前提条件:
1.构建Dockerfile
在已经打包好的jar包的同级目录下新建Dockerfile
Mac 可在IDEA控制台输入vim Dockerfile 进入vim编辑,输入:
其中:
FROM 命令指定运行环境和版本
VOLUME:一个特别指定的目录,用于存储数据,该命令的作用是在/var/lib/docker创建一个名为tmp的目录,在开启redis服务时,需要特别指定redis的数据存储在哪个文件夹,此时这个命令就十分有用
ADD:拷贝文件并且重命名(需要输入两个参数:即jar包名称和重命名后的名称)
ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
2.创建docker文件夹,将jar包与Dockerfile移动到该文件夹,进入该文件夹,运行命令:
此时会将该项目构建成一个image(镜像),运行命令:
3.运行镜像:
注:“:”左边的端口号是暴露给外部访问的端口,而右边端口是docker内部镜像运行的端口
4.打开浏览器访问部署的项目地址,检查项目是否运行正常
完成的程序,部署安装时,需要哪些环境?
首先这个问题问的太宽泛了,什么语言的程序,服务器是win还是linux都会有区别
1.php程序一般为wamp(win+apache+mysql+php)或者lamp(linux+nginx+mysql+php),另外还要看你用到php哪些扩展,开启相关扩展,没有的还得自己安装,还有一些相关的配置信息,例如
php.ini
上传文件大小配置等等,是否需要rewrite功能,数据库配置优化等等很多2..net
程序一般在window下需要安装mssql(当然也有小项目用access的),具体Net版本也要看自己的项目选择3.java
程序需要对应的jdk,一般也是mysql数据库,也有oracle数据库的性能要求高的,还会涉及到memcache,redis以及分布式、数据库读写分离等等,
以上是对于网站开发来说的
如果是app,服务器端程序大多也是基于以上3个的,前台app只要配置一个下载地址就可以了。
如果是软件,大多都是提供下载地址安装,服务器端提供相应的接口服务。
其他语言很多网上一搜就都有了,每个项目需求不一样,或多或少有细微的区别,大体都差不读
这个问题太泛了,具体需要看不同的操作系统,不同的应用需要的环境,比如jave的应用,通常是需要安装jre的环境,.net的应用通常是需要安装在windows服务器操作系统中,需要.net的环境
你得看是哪种程序,程序分PC端,Web端和移动端。PC端程序大多用C++编写(别的不能搞,而是由于开发效率或执行效率上不如C++),而Web端程序多为JavaEE(单指后端程序),移动端则主要分安卓和IOS两块。
移动端和PC端这块我不是很熟,所以不敢乱写,避免误导大家。我只谈谈Web端程序的部署环境。
首先,既然要运行Java,则必须有jdk,目前常用的有jdk6,jdk7,jdk8。因此你需要选择合适的jdk版本进行安装。
其次,要使你的程序能跑起来并对外提供服务,你的有个服务器。当然,这里的服务器指能提供服务的软件,常用的有apache的Tomcat,jetty,WebLogic。我用过的是Tomcat。当然,你还得判断你得程序使用的是何种技术,如果是非springboot开发,则需要将程序打成war包后上传到服务器(这里指安装Tomcat软件的机器)的指定路径下(如果是Tomcat,则路径是webapps下)。然后重启Tomcat即可。而如果是基于Springboot开发项目,由于其内置了Tomcat,所以通常会打包成可执行jar。此时无须安装Tomcat,而是将打包好的可执行jar上传执行即可。
除此以外,一些配套软件也得具备,比如数据库也得进行安装,并将相关信息配置到程序中。如果数据库需要有初始化数据,则需要利用SQL脚本导入初始化数据。如果还有别的诸如redis,mq一类的软件,也需要一并进行配置。
这样,一个Web端程序便已启动。接下来你所要做的就是告诉访问者访问主页的链接就可以了。
windows设置SpringBoot程序(bat脚本)开机自启
新建文本档文件,重命名文件,如run.bat
编写启动脚本,以启动SpringBoot程序为例,路径需为绝对路径。
双击run.bat,测试是否能启动程序。
将脚本放在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp文件夹下。
注意开启显示windows的隐藏文件夹。
关闭账号验证,是因为当windows开机后,不登录程序不会触发启动,无法实现开机后程序自启。
win+R输入 control userpasswords2
在开的窗口中去掉【要使用本计算机,用户必须输入用户名密码】前的勾
部署springboot项目并使用Nginx置域名
先 clear 再 package 出现BUILD SUCCESS就是打包成功了。
Building jar 是jar包的路径
页面访问成功!
拿到jar包访问成功我们第一阶段完成。
补充:
使用自定义的端口号
最普遍的方法:
? 查看运行日志
这样我们就可以使用 IP地址+端口号来访问我们的服务啦!!!
补充:
查看java项目的进程号
3.在Nginx的配置文件里面再加入一个server
主要修改如下几个参数:
这样咱就可使用域名访问我们的服务啦
问题:
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Fri Jul 10 14:09:04 CST 2020
There was an unexpected error (type=Internal Server Error, status=500).
Error resolving template [/commons/public], template might not exist or might not be accessible by any of the configured Template Resolvers (template: "public/public-hot-news" - line 10, col 10)
在window系统下没问题。部署到linux下面出现这个问题
需要注意配置
spring.thymeleaf.prefix=classpath:/templates/
这里已经有斜线了 引入模板的时候不需要再加了
common为目录templates下面的
如何把一个Java程序做成Windows服务
1、下载wrapper-windows-x86-32系列的工具包,解压缩为
。
2、新建一个目录,例如:C:\MyServerApp,并在其下面创建五个文件夹
分别为:
bin 可执行程序文件夹
conf 配置文件夹
lib wrapper自身的jar包文件夹
logs 日志文件夹包
application 新建一个class用于存放应用程序的class文件, 此包下还新建一个lib 用于存放应用程序所需要的 jar包。
3、将
\src\bin 中的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in等文件
与
\bin 下的wrapper.exe复制到bin 目录下,并且将App.bat.in,InstallApp-NT.bat.in,
UninstallApp-NT.bat.in等的后缀.in去掉。
将
\src\conf 下的wrapper.conf文件和
\conf 下的wrapper-license复制到conf目录下,wrapper-license文件一定不能少
将
\lib 下的wrapper.jar,wrappertest.jar和wrapper.dll文件复制到lib目录下
最终的包结构可以是这样子的:
C:\MyServerApp
|-bin
|-App.bat
|-InstallApp-NT.bat
|-UninstallApp-NT.bat
|-wrapper.exe
|-lib
|-wrapper.jar 必须要的
|-wrappertest.jar
|-wrapper.dll
|-conf
|-wrapper.conf
|-wrapper-license
|-logs
|-wrapper.log
|-application
|-lib 应用程序中如果用到了jar包,那么就复制到此文件夹里
|-class 用来存放应用程序(一般应用程序是有包结构的,就把工程里面的bin目录下的.class文件连同包一起拷过来)
4、配置Wrapper工具的wrapper.conf配置文件
配置Java 虚拟机的位置
wrapper.java .command=C:\Program Files\Java \jdk1.6.0_07\bin\java
配置wrapper的主类,如果用他的代理方式,就填org.tanukisoftware.wrapper.WrapperSimpleApp
wrapper.java .mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
工具寻找jar包以及应用程序的路径
wrapper.java .classpath.1=../lib/wrappertest.jar
wrapper.java .classpath.2=../lib/wrapper.jar
wrapper.java .classpath.3=../lib/wrapper.dll
应用程序连同其文件夹一起拷到application文件夹下了,所以路径只需要指定到../application/
wrapper.java .classpath.4=../application/class
应用程序要用到的所有jar包
wrapper.java .classpath.5=../application/lib/*.jar
wrapper.java .library.path.1=../lib
wrapper.java .additional.1=-Dprograme.name=run.bat
要将哪一个应用程序做成服务,就要把他的主函数所在的类名 写在这里
wrapper.app.parameter.1=com.luke.service.server.TcpServer
wrapper.console.format=PM
wrapper.console.loglevel=INFO
指定日志记录的地方
wrapper.logfile=../logs/wrapper.log
wrapper.logfile.format=LPTM
wrapper.logfile.loglevel=INFO
wrapper.logfile.maxsize=0
wrapper.logfile.maxfiles=0
wrapper.syslog.loglevel=NONE
wrapper.console.title=Wrapper Application
wrapper.ntservice.name=@wrapper @
wrapper.ntservice.displayname=@WrapperApplication @
wrapper.ntservice.description=@WrapperDescription @
wrapper.ntservice.dependency.1=
wrapper.ntservice.starttype=AUTO_START
wrapper.ntservice.interactive=false
5、运行cmd
cd c:\MyServerApp\bin
App.bat测试不会将把你的应用(此处为server)安装到Win32系统服务中
InstallApp.bat安装 后才将把你的应用(此处为server)安装到Win32系统服务中
1、去github上面下载winsw Releases · winsw/winsw
2、将WinSW.exe文件复制到java程序所在文件夹中
3、将java程序重命名,去掉名称中的“.”。例如test-1.0.jar ----> test.jar
4、将WinSW.exe重命名为test.exe(和jar同名)
5、新建一个xml文件,命名为test.xml,写入以下内容(还有一些参数自己去看github说明)
test
test
This is test service.
java
-jar "E:\springboot\test.jar"
Automatic
%BASE%\log
rotate
如果没有配置环境变量,直接将三个文件扔到java的bin目录下运行。去掉标签
6、执行: E:\springboot\test.exe install
7、去windows服务列表中启动程序。(如果需要更新程序,只需要先将服务停止,再将新文件重命名为test.jar,替换原来的jar包,最后启动服务就行了)
8、如果不再需要这个服务,使用E:\springboot\test.exe uninstall即可卸载服务,其他命令输入E:\springboot\test.exe -h 查看
————————————————
1、下载wrapper-windows-x86-32系列的工具包,解压缩为
。
2、新建一个目录,例如:C:\MyServerApp,并在其下面创建五个文件夹
分别为:
bin 可执行程序文件夹
conf 配置文件夹
lib wrapper自身的jar包文件夹
logs 日志文件夹包
application 新建一个class用于存放应用程序的class文件, 此包下还新建一个lib 用于存放应用程序所需要的 jar包。
3、将
\src\bin 中的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in等文件
与
\bin 下的wrapper.exe复制到bin 目录下,并且将App.bat.in,InstallApp-NT.bat.in,
UninstallApp-NT.bat.in等的后缀.in去掉。
将
\src\conf 下的wrapper.conf文件和
\conf 下的wrapper-license复制到conf目录下,wrapper-license文件一定不能少
将
\lib 下的wrapper.jar,wrappertest.jar和wrapper.dll文件复制到lib目录下
最终的包结构可以是这样子的:
C:\MyServerApp
|-bin
|-App.bat
|-InstallApp-NT.bat
|-UninstallApp-NT.bat
|-wrapper.exe
|-lib
|-wrapper.jar 必须要的
|-wrappertest.jar
|-wrapper.dll
|-conf
|-wrapper.conf
|-wrapper-license
|-logs
|-wrapper.log
|-application
|-lib 应用程序中如果用到了jar包,那么就复制到此文件夹里
|-class 用来存放应用程序(一般应用程序是有包结构的,就把工程里面的bin目录下的.class文件连同包一起拷过来)
4、配置Wrapper工具的wrapper.conf配置文件
配置Java 虚拟机的位置
wrapper.java .command=C:\Program Files\Java \jdk1.6.0_07\bin\java
配置wrapper的主类,如果用他的代理方式,就填org.tanukisoftware.wrapper.WrapperSimpleApp
wrapper.java .mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
工具寻找jar包以及应用程序的路径
wrapper.java .classpath.1=../lib/wrappertest.jar
wrapper.java .classpath.2=../lib/wrapper.jar
wrapper.java .classpath.3=../lib/wrapper.dll
应用程序连同其文件夹一起拷到application文件夹下了,所以路径只需要指定到../application/
wrapper.java .classpath.4=../application/class
应用程序要用到的所有jar包
wrapper.java .classpath.5=../application/lib/*.jar
wrapper.java .library.path.1=../lib
wrapper.java .additional.1=-Dprograme.name=run.bat
要将哪一个应用程序做成服务,就要把他的主函数所在的类名 写在这里
wrapper.app.parameter.1=com.luke.service.server.TcpServer
wrapper.console.format=PM
wrapper.console.loglevel=INFO
指定日志记录的地方
wrapper.logfile=../logs/wrapper.log
wrapper.logfile.format=LPTM
wrapper.logfile.loglevel=INFO
wrapper.logfile.maxsize=0
wrapper.logfile.maxfiles=0
wrapper.syslog.loglevel=NONE
wrapper.console.title=Wrapper Application
wrapper.ntservice.name=@wrapper @
wrapper.ntservice.displayname=@WrapperApplication @
wrapper.ntservice.description=@WrapperDescription @
wrapper.ntservice.dependency.1=
wrapper.ntservice.starttype=AUTO_START
wrapper.ntservice.interactive=false
5、运行cmd
cd c:\MyServerApp\bin
App.bat测试不会将把你的应用(此处为server)安装到Win32系统服务中
InstallApp.bat安装 后才将把你的应用(此处为server)安装到Win32系统服务中
要将一个 Java 程序转换为 Windows 服务,可以使用一个第三方库,比如 Apache Commons Daemon 或 YAJSW。这些库将帮助你将 Java 应用程序打包成 Windows 服务。
以下是使用 YAJSW 库将 Java 应用程序打包成 Windows 服务的步骤:
1.下载 YAJSW 库并解压缩到一个目录下。
2.将你的 Java 应用程序打包成 jar 文件。
3.将 jar 文件拷贝到 YAJSW/lib 目录下。
4.在 YAJSW/conf 目录下创建一个新的配置文件,比如 myapp.conf。
5.在 myapp.conf 文件中,配置 Java 路径、jar 文件路径、启动类等信息。例如:
wrapper.java.command=C:\Program Files\Java\jdk1.8.0_161\bin\java.exe
wrapper.java.mainclass=com.example.myapp.Main
wrapper.java.classpath.1=../lib/myapp.jar
6.在 YAJSW/bin 目录下执行以下命令:
genConfig myapp
这将生成一个 myapp-service.conf 文件,其中包含了 Windows 服务的配置信息。
7. 在 YAJSW/bin 目录下执行以下命令:
installService myapp
这将安装 myapp 服务。
8. 在 Windows 服务管理器中启动 myapp 服务。
完成以上步骤后,你的 Java 应用程序就被打包成了 Windows 服务,可以在 Windows 服务管理器中管理它。
以下制作方案仅供参考:
1,将Java项目打包成可执行jar文件,如果你用的是myeclipse可以直接导出可执行jar包,如果是eclipse你可以看下怎么导出或者百度
2,制作windowsservi
3 将 wrapper-windows\src\bin 下的
App.bat.in
InstallApp-NT.bat.in
PauseApp-NT.bat.in
ResumeApp-NT.bat.in
StartApp-NT.bat.in
StopApp-NT.bat.in
UninstallApp-NT.bat.in
复制到bin目录下,并将后缀为.in的文件全部重命名,去掉.in。例如: App.bat.in重命名为App.bat,
并将wrapper-windows\bin下的wrapper.exe也复制到bin目录下。
4 将 wrapper-windows\conf 下的文件复制到myWindowServ\conf目录下。
5 将 wrapper-windows\log 下的文件复制到myWindowServ\logs目录下。
6 将 wrapper-windows\lib 下的文件复制到myWindowServ\lib目录下。
7 将需要安装成服务的java程序打包成jar文件(例如 上面的打包文件 myjar.jar)放到myWindowServ\application下。
8 配置新文件夹conf目录下的wrapper.conf文件,可以配置运行环境,执行程序,堆内存大小,服务名称等属性信息。
9 运行InstallApp-NT.bat安装服务,运行StartApp-NT.bat启动服务。
10 可以暂停,重启服务 停止服务 PauseApp-NT.bat ResumeApp-NT.bat StopApp-NT.bat
11 如果要卸载这个服务的话,运行UninstallApp-NT.bat卸载服务。
1、下载wrapper-windows-x86-32系列的工具包,解压缩为
。
2、新建一个目录,例如:C:\MyServerApp,并在其下面创建五个文件夹
分别为:
bin 可执行程序文件夹
conf 配置文件夹
lib wrapper自身的jar包文件夹
logs 日志文件夹包
application 新建一个class用于存放应用程序的class文件, 此包下还新建一个lib 用于存放应用程序所需要的 jar包。
3、将
\src\bin 中的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in等文件
与
\bin 下的wrapper.exe复制到bin 目录下,并且将App.bat.in,InstallApp-NT.bat.in,
UninstallApp-NT.bat.in等的后缀.in去掉。
将
\src\conf 下的wrapper.conf文件和
\conf 下的wrapper-license复制到conf目录下,wrapper-license文件一定不能少
将
\lib 下的wrapper.jar,wrappertest.jar和wrapper.dll文件复制到lib目录下
最终的包结构可以是这样子的:
C:\MyServerApp
|-bin
|-App.bat
|-InstallApp-NT.bat
|-UninstallApp-NT.bat
|-wrapper.exe
|-lib
|-wrapper.jar 必须要的
|-wrappertest.jar
|-wrapper.dll
|-conf
|-wrapper.conf
|-wrapper-license
|-logs
|-wrapper.log
|-application
|-lib 应用程序中如果用到了jar包,那么就复制到此文件夹里
|-class 用来存放应用程序(一般应用程序是有包结构的,就把工程里面的bin目录下的.class文件连同包一起拷过来)
4、配置Wrapper工具的wrapper.conf配置文件
配置Java 虚拟机的位置
wrapper.java .command=C:\Program Files\Java \jdk1.6.0_07\bin\java
配置wrapper的主类,如果用他的代理方式,就填org.tanukisoftware.wrapper.WrapperSimpleApp
wrapper.java .mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
工具寻找jar包以及应用程序的路径
wrapper.java .classpath.1=../lib/wrappertest.jar
wrapper.java .classpath.2=../lib/wrapper.jar
wrapper.java .classpath.3=../lib/wrapper.dll
应用程序连同其文件夹一起拷到application文件夹下了,所以路径只需要指定到../application/
wrapper.java .classpath.4=../application/class
应用程序要用到的所有jar包
wrapper.java .classpath.5=../application/lib/*.jar
wrapper.java .library.path.1=../lib
wrapper.java .additional.1=-Dprograme.name=run.bat
要将哪一个应用程序做成服务,就要把他的主函数所在的类名 写在这里
wrapper.app.parameter.1=com.luke.service.server.TcpServer
wrapper.console.format=PM
wrapper.console.loglevel=INFO
指定日志记录的地方
wrapper.logfile=../logs/wrapper.log
wrapper.logfile.format=LPTM
wrapper.logfile.loglevel=INFO
wrapper.logfile.maxsize=0
wrapper.logfile.maxfiles=0
wrapper.syslog.loglevel=NONE
wrapper.console.title=Wrapper Application
wrapper.ntservice.name=@wrapper @
wrapper.ntservice.displayname=@WrapperApplication @
wrapper.ntservice.description=@WrapperDescription @
wrapper.ntservice.dependency.1=
wrapper.ntservice.starttype=AUTO_START
wrapper.ntservice.interactive=false
5、运行cmd
cd c:\MyServerApp\bin
App.bat测试不会将把你的应用(此处为server)安装到Win32系统服务中
InstallApp.bat安装 后才将把你的应用(此处为server)安装到Win32系统服务中
SpringBoot项目如何进行打包部署
打成jar进行部署(步骤)
1. 需要在application.properties当中配置端口
2.marven的配置文件
注意:这块一定要配置否则打jar的时候会说找不到主类
3.在启动类当中加上extends SpringBootServletInitializer并重写configure方法,这是为了打包springboot项目用的
4.然后按照顺序运行mvn clean再mvn install
宝塔面板部署Spring Boot项目
一般的 Spring Boot 项目打包完是 .jar 文件,已内嵌了 Tomcat 服务器,但是当我们部署到生产环境的时候一般用的是 .war 包,这次我们使用宝塔面板来完成项目的环境搭建和部署。
此教程所使用的环境:
首先,我们需要构建 .war 包,需要对项目构建进行一些设置,以 Maven 为例,修改 pom.xml 。
修改打包方式为 war ,注意最后一行:
加入这一项依赖设置:
在包的根目录新建一个 ServletInitializer 类(比如在我的项目里,与 BaotatestApplication 类同级),内容类似如下:
然后再回到项目根目录(有 pom.xml 的目录),进行编译:
如果要跳过测试,就输入:
编译完成之后就能在 target/ 目录下找到我们的 .war 包,比如我是 baotatest-0.0.1-SNAPSHOT.war 。
接下来配置服务器环境,首先宝塔面板的安装不再赘述,到其“软件商店”安装好:
安装完 Tomcat 后记得放行 8080 端口(Tomcat 默认端口)。再把我们的 .war 包放进 /www/server/tomcat/webapps 目录就会自动解压部署,在同级目录生成同名文件夹(如果没有自动部署就重启一下 Tomcat,另外部署不成功的话可以去 /www/server/tomcat/logs 看看日志文件)。此时再访问 http://example.com:8080/baotatest-0.0.1-SNAPSHOT/ 就可以访问我们的应用了。
后面长长的一串似乎并不好看,我们可以将其去掉,有两种方法。
一种是直接将包名改成 ROOT.war ,即可。
另一种需要修改配置文件 /www/server/tomcat/conf/server.xml ,在
...
标签内插入:
或者这样:
path 属性可以定义访问的路径,比如挂载到 /hello 上,这里我们留空就是根域名。
然后再将 Tomcat 配置重载,我们就能在根目录下访问到这个项目了。
还有就是给上传目录配置静态资源映射,比如我这里的 有一个上传目录 /www/uploads ,用户上传的图片都会保存到这个 uploads 文件夹来,那如何在服务器访问这个目录呢?一样,加入:
习惯上还需要配置一下 Nginx 反向代理 Tomcat。
去宝塔的“网站”页面里新建一个站点,除了域名保持默认就行了。
然后在其“设置”中配置“反向代理”,目标域名就是 Tomcat 的地址,比如 http://dev.shadowcat.cn:8080 ,发送地址用 $host 就可以了,其他保持默认即可,最后访问一下 Nginx 即可成功返回结果。