首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpingBoot映射不起作用。404状态

SpingBoot映射不起作用。404状态
EN

Stack Overflow用户
提问于 2015-08-09 14:37:29
回答 1查看 8.4K关注 0票数 2

我一步一步地在youtube上学习教程,但我没有得到结果。守则如下:

主要应用

代码语言:javascript
复制
@SpringBootApplication
public class Application {
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
}

模型类

代码语言:javascript
复制
public class Greeting {

    private BigInteger id;
    private String text;

    public Greeting() {}

    public BigInteger getId() {
        return id;
    }

    public void setId(BigInteger id) {
        this.id = id;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}

问候控制器

代码语言:javascript
复制
@RestController()
public class GreetingController {

    private static BigInteger nextId;
    private static Map<BigInteger, Greeting> greetingMap;

    private static Greeting save(Greeting greeting) {
        if (greetingMap == null) {

            greetingMap = new HashMap<BigInteger, Greeting>();
            nextId = BigInteger.ONE;
        }
        greeting.setId(nextId);
        nextId = nextId.add(BigInteger.ONE);
        greetingMap.put(greeting.getId(), greeting);
        return greeting;
    }

    static {
        Greeting g1 = new Greeting();
        g1.setText("Hello World");
        save(g1);
        Greeting g2 = new Greeting();
        g2.setText("Hola Mundo!");
        save(g2);
    }

    @RequestMapping(
            value = "/api/greetings",
            method = RequestMethod.GET,
            produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Collection<Greeting>> getGreetings() {
        Collection<Greeting> greetings = greetingMap.values();

        return new ResponseEntity<Collection<Greeting>>(greetings, HttpStatus.OK);
    }
}

Pom.xml文件

代码语言:javascript
复制
<modelVersion>4.0.0</modelVersion>

<groupId>com.hakeem.webservice2</groupId>
<artifactId>WebService2</artifactId>
<version>0.0.1-SNAPSHOT</version>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.1.RELEASE</version>
</parent>

<dependencies>

    <dependency>

        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>

</build>

每当我运行get请求时,我都会从邮递员那里得到以下响应:

代码语言:javascript
复制
{
    "timestamp": 1439128293727,
    "status": 404,
    "error": "Not Found",
    "message": "No message available",
    "path": "/api/greetings"
}

或来自铬的下列内容:

白色标签错误页 此应用程序没有/error的显式映射,因此您认为这是一种退步。 太阳08月08:43:41COT 2015有一个意想不到的错误(type=Not Found,status=404)。没有可用的消息

我一步一步地跟踪录像。视频上的导师似乎没有做任何额外的事情。每当我输入

本地主机:8080/api/问候

我只得到了前面提到的错误。

加法。这是控制台输出,我不知道它是否有用:

2015-08-09 10:49:09.918 INFO 7696 -主com.hakeem.webservice2.应用:在笔记本电脑上启动PID 7696 (C:\Users\HakeemAbdussamad\Documents\MarsWorkspace\WebService2\target\classes,由HakeemAbdussamad在C:\Users\HakeemAbdussamad\Documents\MarsWorkspace\WebService2) 2015中启动-08- 09 10:49:09.988 INFO 7696 -主ationConfigEmbeddedWebApplicationContext :刷新org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@7bb0e64a:启动日期太阳08月10:49:09 COT 2015;上下文层次结构(根) 2015-08-09 10:49:10.710 INFO 7696 -主factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration;:重写bean定义的bean 'beanNameViewResolver':替换[根bean:类null;scope=;abstract=false;lazyInit=false;autowireMode=3;dependencyCheck=0;autowireCandidate=true;primary=false;primary=false factoryMethodName=beanNameViewResolver;initMethodName=null;destroyMethodName=(推断);在类路径资源org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]中定义为[Root : class null;scope=;abstract=false;lazyInit=false;lazyInit=false;autowireMode=3;lazyInit=false;lazyInit=false;scope=;scope=;abstract=false;lazyInit=false;lazyInit=false;autowireMode=3;scope=;scope=;abstract=false;lazyInit=false;lazyInit=false;autowireMode=3;scope=;abstract=false;lazyInit=false;lazyInit=false;autowireMode=3;scope=;abstract=false;lazyInit=false]);factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter;factoryMethodName=beanNameViewResolver;initMethodName=null;destroyMethodName=(推断);在类路径资源org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class] 2015-08-09 10:49:11.547 INFO 7696 -主s.b.c.e.t.TomcatEmbeddedServletContainer :使用端口初始化的Tomcat : 8080 (http) 2015-08-09 10:49:11.797 INFO 7696 -主o.apache.catalina.core.StandardService :启动服务Tomcat 2015-08-09 10:49:11.801主org.apache.catalina.core.StandardEngine :启动Servlet引擎: Apache /8.0.15 2015-08-09 10:49:11.926 INFO 7696 - ost-startStop-1 o.c.Tomcat.localhost./:初始化Spring 2015-08-09 10:49:11.926 INFO 7696 - ost-startStop-1 o.s.web.context.ContextLoader:根WebApplicationContext:初始化完成于1942年ms 2015-08-09 10:49:12.743 INFO 7696 - ost-startStop-1 o.s.b.c.e.ServletRegistrationBean :映射servlet:'dispatcherServlet‘to / 2015-08-09 10:49:12.747 INFO 7696 -- ost-startStop-1 o.s.b.c.embedded.FilterRegistrationBean :映射筛选器:'characterEncodingFilter’to: /_ 2015-08-09 10:49:12.747 INFO 7696- ost-startStop-1 o.s.b.c.embedded.FilterRegistrationBean :映射筛选器:“hiddenHttpMethodFilter”到: /_ 2015-08-09 10:49:12.963 INFO 7696 -主s.w.s.m.m.a.RequestMappingHandlerAdapter :查找@ControllerAdvice: o.s.b.c.embedded.FilterRegistrationBean启动日期: Sun 08月10:49:09 COT 2015;上下文层次结构的根2015-08-09 10:49:13.035 INFO 7696 --主s.w.s.m.m.a.RequestMappingHandlerMapping : main "{/error,methods=[],params=[],headers=[],consumes=[],produces=[],org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 2015-08-09 10:49:13.036 INFO 7696 --主要s.w.s.m.m.a.RequestMappingHandlerMapping : main s.w.s.m.m.a.RequestMappingHandlerMapping:main "{/error,methods=[],params=[],headers=[],consumes=[],produces=text/html,org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest) 2015-08-09 10:49:13.108 INFO 7696 -主o.s.w.s.handler.SimpleUrlHandlerMapping :映射的URL路径/**到类org.springframework.web.servlet.resource.ResourceHttpRequestHandler 2015-08-09 10:49:13.108 INFO 7696 -custom=[]}main org.springframework.web.servlet.resource.ResourceHttpRequestHandler路径/webjars/**映射到类org.springframework.web.servlet.resource.ResourceHttpRequestHandler 2015-08-09 10:49:13.191 INFO 7696-主o.s.j.e.a.AnnotationMBeanExporter :在启动时为JMX公开注册beans 08-09 10:49:13.329 INFO 7696 -主s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat启动端口: 8080 (http) 2015-08-09 10:49:13.331 INFO 7696 -主com.hakeem.webservice2应用程序: 3.733秒内启动应用程序(JVM运行4.32)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-09 15:56:06

给出的代码在我看来是对的。查看完整的源代码可能会有所帮助。例如,如果GreetingController类不在同一个包中,或者不在Application类的子包中,则不会扫描它,因此将出现此错误。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31905357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档