java错误404,当试图在tomcat中显示某些内容时

yqlxgs2m  于 2021-06-30  发布在  Java
关注(0)|答案(4)|浏览(340)

我在这个视频里做了所有的事情:但是当我打字的时候: 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
最后打招呼
有什么问题吗/

jexiocij

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

llew8vvj

llew8vvj2#

@节省
部署时从tomcat登录:

21-Dec-2020 16:49:22.227 INFO [http-nio-8000-exec-17] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\Users\Damian\Desktop\JAVA\apache-tomcat-8.5.61\webapps\spring-sample3-1.0-SNAPSHOT.war]
21-Dec-2020 16:49:24.113 INFO [http-nio-8000-exec-17] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
21-Dec-2020 16:49:24.138 INFO [http-nio-8000-exec-17] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\Users\Damian\Desktop\JAVA\apache-tomcat-8.5.61\webapps\spring-sample3-1.0-SNAPSHOT.war] has finished in [1,907] ms

那么我应该使用哪个版本的jre和jdk呢?

8oomwypt

8oomwypt3#

我发现了问题:在config类中,您为servletMap和servlet config类提供了不正确的值。请按以下方式更改配置类:

@Configuration
@ComponentScan({"app"})
@EnableWebMvc
public class Config extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] {Config.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}
2guxujil

2guxujil4#

@daniep kajoi您应该在Java15上为tomcat设置路径,或者在1.8版本的pom.xml中更改maven.compiler.source属性—这是两个选项之一。我在你的日志中看到你的路径是'spring-sample3-1.0-snapshot.war'

21-Dec-2020 16:49:22.227 INFO [http-nio-8000-exec-17] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\Users\Damian\Desktop\JAVA\apache-tomcat-8.5.61\webapps\spring-sample3-1.0-SNAPSHOT.war]
21-Dec-2020 16:49:24.113 INFO [http-nio-8000-exec-17] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
21-Dec-2020 16:49:24.138 INFO [http-nio-8000-exec-17] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\Users\Damian\Desktop\JAVA\apache-tomcat-8.5.61\webapps\spring-sample3-1.0-SNAPSHOT.war] has finished in [1,907] ms

尝试打开url:http://localhost:8080/spring-sample3-1.0-snapshot.war/hello

相关问题