【发布时间】:2020-03-19 08:27:22
【问题描述】:
我正在尝试使用一个名为 /movies 的端点创建一个基本的 SpringBoot Web 应用程序。我关注了网站上的一些文档以及关于它的基本 Youtube 教程。
当我从命令行运行 curl localhost:8080 时,应用程序返回 'it works' 但是当我尝试访问我的端点 /movies 时,我看到“The在此服务器上找不到请求的 URL /movies。'
主类:
@SpringBootApplication
public class Main
{
public static void main( String[] args )
{
SpringApplication.run(Main.class, args);
}
}
控制器类:
@RestController
@RequestMapping("/movies")
public class MovieController {
@Autowired
private MovieService movie_service;
@RequestMapping(method = RequestMethod.GET)
public Collection<Movie> getAllMovies(){
return movie_service.getAllMovies();
}
}
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.0</modelVersion>
<groupId>com</groupId>
<artifactId>MovieDCU</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
对于发布的类似问题,我已经尝试了该网站上几乎所有建议的答案,但似乎没有任何解决方法。一件不寻常的事情是,我在命令行中运行应用程序时看不到映射:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.1.RELEASE)
2019-11-23 13:27:19.243 INFO 30238 --- [ main] com.Main : Starting Main on Conors-MB with PID 30238 (/Users/eclipse-workspace/Movie/target/classes started by x in /Users/eclipse-workspace/Movie)
2019-11-23 13:27:19.249 INFO 30238 --- [ main] com.Main : No active profile set, falling back to default profiles: default
2019-11-23 13:27:20.011 INFO 30238 --- [ main] com.Main : Started Main in 1.209 seconds (JVM running for 1.611)
感谢任何帮助。
【问题讨论】:
-
这两个类的包是什么?它如何返回“它有效”?这样做的代码在哪里?
-
您的控制器对我来说看起来不错。这是您启动应用程序时看到的唯一日志输出吗?默认情况下应该有更多。
-
您的应用程序尚未启动 Tomcat,因此必须有另一个进程正在侦听端口 8080 并提供“它可以工作”。我猜想 Tomcat 的一个 jar 在下载时被 Maven 损坏了。尝试清除 Maven 的缓存并重建您的应用程序。
-
@AndyWilkinson 谢谢。我没有在应用程序方面运行任何东西,但仍有一些东西在使用该端口。我在 8090 上运行它,它现在可以工作了。
标签: java spring spring-boot model-view-controller controller