IEDA打包springboot项目部署的注意事项

IEDA打包springboot项目部署的注意事项

1.springboot自带tomcat,打包后部署项目是放在linux系统内tomcat的webapps中,使用linux的tomcat服务器运行。因此在打包前需要排除springboot自带的tomcat.


    <dependency>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-starter-webartifactId>
      
      <exclusions>
        <exclusion>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-tomcatartifactId>
        exclusion>
      exclusions>
    dependency>


    <dependency>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-starter-tomcatartifactId>
      <scope>providedscope>
    dependency>
    <dependency>
      <groupId>org.apache.tomcat.embedgroupId>
      <artifactId>tomcat-embed-jasperartifactId>
      <scope>providedscope>
    dependency>

2.需要制定打包方式为war.

<package>warpackage>

3.打包后yml文件中配置的访问路径失效,访问路径变为war包的名字.

4.修改入口类

package com.baizhi;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
@MapperScan("com.baizhi.dao")
//修改入口类以便打包
public class Application extends SpringBootServletInitializer {
    public static void main(String[] args) {

        SpringApplication.run(Application.class,args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
}

5.在pom文件中指定入口类

<build>
	<plugins>
      <plugin>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-maven-pluginartifactId>
        
        <configuration>
          <fork>truefork>
          
          <jvmArguments>-Dfile.encoding=UTF-8jvmArguments>
          
          <mainClass>com.baizhi.ApplicationmainClass>
        configuration>
      plugin>
    plugins>
build>	

常见的报错信息:

1.打包后浏览器中发送请求显示404,在确保请求路径正常后仍出现404,可能是打包出现问题。我在打包时发现使用插件中的war命令打包一直出现404,最后改为使用lifecicle中的package打包,解决了404错误。

2.浏览器控制台显示发送请求状态为pending,我的项目部署在虚拟机上,访问的是宿主机的mysql。出现这个问题,我查看了tomcat的日志,发现问题是宿主机中的mysql只允许localhost访问。将访问权限修改为允许所有ip访问后解决。

你可能感兴趣的:(错误笔记)