通过idea启动Main可以通过
http://localhost:8080/test
访问到结果
但是把项目打成war包放到tomcat/webapps下面再通过
http://localhost:8080/Test/test
访问会报错404(tomcat配置一切都是默认的)
tomcat项目目录:
浏览器报错:
启动类:
package com.gamejoye;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@SpringBootApplication
@Controller
public class Main extends SpringBootServletInitializer {
@RequestMapping("test")
@ResponseBody
public String test() {
return "test page";
}
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Main.class);
}
}
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<packaging>warpackaging>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>3.0.0-SNAPSHOTversion>
<relativePath/>
parent>
<groupId>com.gamejoyegroupId>
<artifactId>BlogartifactId>
<version>1.0-SNAPSHOTversion>
<properties>
<maven.compiler.source>17maven.compiler.source>
<maven.compiler.target>17maven.compiler.target>
<java.version>17java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>com.corundumstudio.socketiogroupId>
<artifactId>netty-socketioartifactId>
<version>1.7.22version>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-nopartifactId>
<version>1.7.2version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>2.0.1version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druid-spring-boot-starterartifactId>
<version>1.1.9version>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>2.2.2version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
dependencies>
<build>
<finalName>BlogfinalName>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
<repositories>
<repository>
<id>spring-milestonesid>
<name>Spring Milestonesname>
<url>https://repo.spring.io/milestoneurl>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
<repository>
<id>spring-snapshotsid>
<name>Spring Snapshotsname>
<url>https://repo.spring.io/snapshoturl>
<releases>
<enabled>falseenabled>
releases>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-milestonesid>
<name>Spring Milestonesname>
<url>https://repo.spring.io/milestoneurl>
<snapshots>
<enabled>falseenabled>
snapshots>
pluginRepository>
<pluginRepository>
<id>spring-snapshotsid>
<name>Spring Snapshotsname>
<url>https://repo.spring.io/snapshoturl>
<releases>
<enabled>falseenabled>
releases>
pluginRepository>
pluginRepositories>
project>
你好,springnoot直接生启动就可以了,使用以下命令
java -jar jar包名带后缀 > catalina.log
如果一定要使用外置tomcat,是需要配置的,直接打成war是不行的。
1、首先安装外置tomcat,然后配置环境变量,把tomcat的bin目录加入Path环境变量中。
2、在pom.xml文件中添加如下依赖
<!--外置tomcat启动依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
3、在application.properties文件中添加如下配置:
#外置tomcat启动配置
server.tomcat.basedir=/usr/local/tomcat
server.tomcat.protocol=org.apache.coyote.http11.Http11NioProtocol
server.port=8081
4、在启动类上添加注解:
@SpringBootApplication
@ComponentScan(basePackages = {"com.xxx.xxx"})
public class Application {
public static void main(String[] args) {
//重新定义tomcat路径
System.setProperty("catalina.base", System.getProperty("user.dir") + "/tomcat");
SpringApplication.run(Application.class, args);
}
5、在项目根目录下新建一个文件夹tomcat,然后将外置tomcat的conf、webapps、lib、temp等文件夹拷贝到tomcat文件夹中。
6、在tomcat文件夹下新建一个文件夹webapps,将打包好的war包拷贝到webapps文件夹下,并将war包修改名字为ROOT.war,就可以通过外置tomcat启动springboot项目了。
不知道你这个问题是否已经解决, 如果还没有解决的话: