我在这个视频里做了所有的事情:但是当我打字的时候: http://localhost:8080/spring-sample-1.0-SNAPSHOT/hello
此错误显示为:
HTTP Status 404 – Not Found
Type Status Report
Message The requested resource [/spring-sample-1.0-SNAPSHOT/hello] is not available
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
我唯一更改的地方是:tomcat/bin/setclasspath.bat,我在那里添加了一行:
set JRE_HOME=C:\Program Files\Java\jre1.8.0_271
因为没有这个服务器就不能启动
好的,所以我的应用程序非常简单,我用java 15创建了mvn项目,然后创建了两个类:
配置:
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
@Configuration
@ComponentScan({"app"})
@EnableWebMvc
public class Config extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[0];
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[0];
}
@Override
protected String[] getServletMappings() {
return new String[0];
}
}
你好:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Hello {
@GetMapping("/hello")
public String get(){
return "Bycza zagroda!";
}
}
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>pl.bykowski</groupId>
<artifactId>spring-sample</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<maven.compiler.source>15</maven.compiler.source>
<maven.compiler.target>15</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
然后我将所有内容打包到war文件中,并将其添加到tomcat管理器中:要部署的war文件
之后,我在tomcat模块中单击了/spring-sample-1.0-snapshot
最后打招呼
有什么问题吗/
4条答案
按热度按时间jexiocij1#
首先,我建议为操作系统设置java\u home或jre\u home env变量。有关详细信息:https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html 无论如何,更改tomcat的文件都不是个好主意:)
要解决无法访问url的问题,请检查:
对于已安装的tomcat:
通常,war文件的名称是上下文名称和url的一部分(spring-sample-1.0-snapshot),但该名称可以在context.xml中配置(文档:https://tomcat.apache.org/tomcat-8.0-doc/config/context.html)
打开管理器窗口,您可以在视频中看到(http://localhost:8080/manager/html)并查找web应用程序的链接
对于嵌入式tomcat:
上下文路径应该类似于pom.xml中的artifactid
llew8vvj2#
@节省
部署时从tomcat登录:
那么我应该使用哪个版本的jre和jdk呢?
8oomwypt3#
我发现了问题:在config类中,您为servletMap和servlet config类提供了不正确的值。请按以下方式更改配置类:
2guxujil4#
@daniep kajoi您应该在Java15上为tomcat设置路径,或者在1.8版本的pom.xml中更改maven.compiler.source属性—这是两个选项之一。我在你的日志中看到你的路径是'spring-sample3-1.0-snapshot.war'
尝试打开url:http://localhost:8080/spring-sample3-1.0-snapshot.war/hello