SpringBoot打war包,使用tomcat或金蝶中间件启动

1.创建一个类继承SpringBootServletInitializer类,重写configure方法
 

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class SpringBootStart extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(RegisterServerApplication.class);
    }
}

2.RegisterServerApplication类是以前jar包的启动类
 

public class RegisterServerApplication

{
    public static void main(String[] args) {
        SpringApplication.run(RegisterServerApplication.class, args);
    }

3.pom去掉tomcat包

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	        <exclusions>
		    	<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
</dependency>

4.pom添加servlet包
 

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
		</dependency>

5.如果出现访问不了接口问题就注入DispatcherServlet
 

@Bean
    public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {
        return new ServletRegistrationBean(dispatcherServlet,"/*");
    }

6.如果出现上传不了文件问题增加如下配置

@Bean(name = "multipartResolver")
    public MultipartResolver multipartResolver(){
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        resolver.setDefaultEncoding("UTF-8");
        resolver.setResolveLazily(true);//resolveLazily属性启用是为了推迟文件解析,以在在UploadAction中捕获文件大小异常
        resolver.setMaxInMemorySize(40960);
        resolver.setMaxUploadSize(50*1024*1024);//上传文件大小 50M 50*1024*1024
        return resolver;
    }

7.如果出现isPersent 没有找到这个方法的错误,是spring包的冲突问题,看看有没有低版本的spring包,例如我这里是pom如下,去除就好了

<dependency>
			<groupId>org.codehaus.xfire</groupId>
			<artifactId>xfire-spring</artifactId>
			<version>1.2.6</version>
			<exclusions>
				<exclusion>
					<artifactId>spring</artifactId>
					<groupId>org.springframework</groupId>
				</exclusion>
			</exclusions>
		</dependency>

8.tomcat里放两个war包报错,单独启动不报错处理
在配置文件添加如下配置

spring.jmx.default-domain=project1
spring.jmx.default-domain=project2

9.报java.lang.UnsatisfiedLinkError: /usr/local/java/jdk1.8.0_91/jre/lib/amd64/libawt_xawt.so: libXtst.so错误,在启动脚本里添加如下命令

-Djava.awt.headless=true

以金蝶启动脚本为例


版权声明:本文为qq_31324077原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。