博主最近一直在做自己的毕设系统,这个说了好多次了哦。
到了后期完善阶段,恰巧自己在阿里云领取了半年的服务器,配置还算不错。那么有想法把自己的系统上传到服务器上去。
SpringBoot打包方式有很多种。
注:不推荐SpringBoot项目打war包,因为SpringBoot适合前后端分离,适合打jar包。
相关的工具,类似于数据库,Redis缓存等都需要更换数据源。这里博主贴一下自己的配置文件。
一般情况下会在要部署的服务器上安装相应的环境并测试连接成功。
在启动类加上extends SpringBootServletInitializer
并重写configure
方法。
@SpringBootApplication
public class GdApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(GdApplication.class, args);
}
@Override//为了打包springboot项目
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
java -jar smallsystem-0.0.1-SNAPSHOT.jar
运行项目。
我们根据IP地址和端口向往常一样访问,发现报404错误。仔细检查打的jar包里面没有包含JSP文件(SpringBoot对JSP打包一般会忽略,建议替换成模板引擎)。还需要在<plugins>
的同级目录添加配置。
<resources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
这个配置是为了让打包的时候把webapp文件一起打包进去。
重新打包就OK了。
如果出现404的问题,根本原因一定是访问控制层能够进入方法,也能打印日志,是页面没找到。 这里我大概看了一下,大概的原因如下: 1.在SpringBoot项目中,resource并不是根资源目录 2.就是跳转的地址有问题 也就是说controller中的跳转地址不对! 注意注解的是否正确使用。这就是SpringBoot使用JSP的弊端。
加个<packaging>war</packaging>
,就OK啦!就这么点区别。
后台打印日志
这样SpringBoot项目就部署成功了。
在进行系统操作的时候看Xshell一直有日志打印,这里让他后台运行,日志打印在文件中。
使用命令touch start.sh
,创建文件。
使用命令vim start.sh
,编辑文件。
nohup java -Dfile.encoding=UTF-8 -jar patentmanager-web-1.0.0-SNAPSHOT.jar --server.port=8888 & #server.port为自己项目的端口号
保存并退出,修改文件权限chmod 777 start.sh
。
运行./start.sh
,会生成一个日志文件nohup.out
。
可以使用cat,tail,less等命令查看日志文件。
如果想要中止系统运行就要根据端口号去杀掉进程了。
好啦,这篇结束啦