栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot项目eclipse可正常访问,部署到tomcat却无法访问项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot项目eclipse可正常访问,部署到tomcat却无法访问项目

解决:
在springboot项目的启动类(含main方法的类)中添加继承extends springApplicationBuilder,并重写方法:

@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder springApplicationBuilder) {
		return springApplicationBuilder.sources(DiagnosisCenterApplication.class);
	}

----------------------------------------分割线-----------------------------------------------------

场景描述 新建一springboot项目,编码完成,启动类如下:
package com.jinshan.diagnosiscenter;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@SpringBootApplication
@EnableAutoConfiguration
@ServletComponentScan
public class DiagnosisCenterApplication implements WebMvcConfigurer {
	
	
	public static void main(String[] args) {
		SpringApplication.run(DiagnosisCenterApplication.class, args);
	}
	
	@Bean
	public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
		return new RestTemplate(factory);
	}
 
	@Bean
	public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
		SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
		factory.setReadTimeout(180000);//单位为ms
		factory.setConnectTimeout(5000);//单位为ms
		return factory;
	}
	

}

pom.xml文件如下:


	4.0.0
	
		org.springframework.boot
		spring-boot-starter-parent
		2.4.5
		 
	
	com.jinshan
	diagnosis-center
	1.0.0
	war
	diagnosis-center
	Demo project for Spring Boot
	
		1.8
	
	
		
			org.springframework.boot
			spring-boot-starter-web
			
				
				
					org.springframework.boot
					spring-boot-starter-logging
				
			
		

		
			mysql
			mysql-connector-java
			runtime
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		

		
		
			com.google.guava
			guava
			30.1-jre
		

		
		
			com.google.code.gson
			gson
		
		
		
			org.springframework.boot
			spring-boot-starter-actuator
		

		
		
		
			org.springframework.boot
			spring-boot-starter-log4j2
		

		
			org.projectlombok
			lombok
		
		


	

	
		diagnosiscenter
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	



项目在eclipse中可正常访问 打包部署到服务器(linux/windows)


无法访问。

查找原因 首先想到了是打包的问题
  • 缺少打包的依赖
  • 打包插件问题
  • 依赖版本问题
服务器配置问题
  • 核对tomcat/conf/server.xml

一番操作之后发现都没有用,然后就看tomcat的日志信息,如下:


如图所示,只是tomcat启动了,但是并没有加载项目。,这就是原因所在

解决

在网上对应一搜,找到一老大哥的文章https://www.pianshen.com/article/1265130159/ 解决了问题。

解决办法

在springboot项目的启动类(含main方法的类)中添加继承extends springApplicationBuilder,并重写方法:

@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder springApplicationBuilder) {
		return springApplicationBuilder.sources(DiagnosisCenterApplication.class);
	}

完整的启动类:

package com.jinshan.diagnosiscenter;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@SpringBootApplication
@EnableAutoConfiguration
@ServletComponentScan
public class DiagnosisCenterApplication extends SpringBootServletInitializer implements WebMvcConfigurer {
	
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder springApplicationBuilder) {
		return springApplicationBuilder.sources(DiagnosisCenterApplication.class);
	}
	
	public static void main(String[] args) {
		SpringApplication.run(DiagnosisCenterApplication.class, args);
	}
	
	@Bean
	public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
		return new RestTemplate(factory);
	}
 
	@Bean
	public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
		SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
		factory.setReadTimeout(180000);//单位为ms
		factory.setConnectTimeout(5000);//单位为ms
		return factory;
	}
	

}

验证

重新打包并部署,查看日志:


如图所示,项目正常启动。

访问:

正常访问。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282074.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号