首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >请求错误(invalid_request)春季rest

请求错误(invalid_request)春季rest
EN

Stack Overflow用户
提问于 2017-08-25 09:31:11
回答 1查看 1.5K关注 0票数 0

我使用Spring和Rest模板.Simplest one编写了一个Rest。这是我在控制器中写的代码。

代码语言:javascript
运行
复制
package wsJson;

import java.util.concurrent.atomic.AtomicLong;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class RestCon {

    private AtomicLong id;

    public Bean b;
    @RequestMapping("/bean")
    public Bean getBeans(@RequestParam(value="name")String name){
        return new Bean(id.incrementAndGet(), name);

    }

}

Bean很简单,主类只运行。每当我运行代码时,它都在localhost:8080中运行。但是当我进入URL http://localhost:8080/api/bean?name=User1

它给

请求错误(invalid_request) 无法处理您的请求。无法处理请求--这可能是由于配置错误或可能是格式错误的请求造成的。

有人能帮我理解这个问题以及如何解决这个问题吗?这段代码正常工作,但在我的办公室,我坐在代理网络后面的后面,这段代码就这样失败了!有人知道为什么会这样吗?

编辑:在我运行这个应用程序之后,我可以看到在输入控制器后,下面是登录控制台:

2017-08-25 16:43:18.325 INFO 1056 --主s.w.s.m.m.a.RequestMappingHandlerAdapter :查找@ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@d3d15a:启动日期(星期五)8月25日16:43:16 :16上下文层次结构根2017-08-25 16:43:18.419 INFO 1056 --主s.w.s.m.m.a.RequestMappingHandlerMapping : main "{/greeting,到公共hello.GreetingController.greeting(java.lang.String) org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 2017-08-25 16:43:18.422 INFO 1056 -主s.w.s.m.m.a.RequestMappingHandlerMapping :映射"{/error}“到公共org.springframework.http.ResponseEntity> org.springframework.http.ResponseEntity> 2017-08-25 16:43:18.422 INFO 1056 -methods=GET}main s.w.s.m.m.a.RequestMappingHandlerMapping :main "{/error,在公共org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,上生成= org.springframework.web.servlet.ModelAndView /html}“( org.springframework.web.servlet.resource.ResourceHttpRequestHandler ) 2017-08-25 16:43:18.444 INFO 1056 -主o.s.w.s.handler.SimpleUrlHandlerMapping :映射的URL路径/webjars/**到类javax.servlet.http.HttpServletResponse 2017-08-25 16:43:18.444 INFO 1056 -主o.s.w.s.handler.SimpleUrlHandlerMapping :映射的URL路径/** of类org.springframework.web.servlet.resource.ResourceHttpRequestHandler 2017-08-25 16:43:18.495 INFO 1056 -主o.s.w.s.handler.SimpleUrlHandlerMapping :映射的URL路径/**/ org.springframework.web.servlet.resource.ResourceHttpRequestHandler类型的处理程序-org.springframework.web.servlet.resource.ResourceHttpRequestHandler 2017-08-25 16:43:18.633 INFO 1056 -主o.s.j.e.a.AnnotationMBeanExporter在启动的2017-08-25 16:43:18.817 INFO 1056 主s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat启动于端口: 8080 (http) 2017-08-25 16:43:18.833 INFO 1056 主hello.Application :在3.063秒内启动应用程序(JVM运行3.729)

主修班:

代码语言:javascript
运行
复制
package wsJson;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);

    }

}

豆类:

代码语言:javascript
运行
复制
package wsJson;


public class Bean {

    public long id;
    public String name;

    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Bean(long id, String name) {
        super();
        this.id = id;
        this.name = name;
    }

}

使用spring 1.5.6发布的应用程序

EN

回答 1

Stack Overflow用户

发布于 2017-08-25 10:59:35

这与您的spring引导应用程序无关。如果您的应用程序日志中有异常,请让我们知道堆栈跟踪。在您的代码片段中,没有初始化代码段id,因此您的代码无法工作:下面是我测试过的代码示例:

代码语言:javascript
运行
复制
@SpringBootApplication
@RestController
@RequestMapping("/api")
public class TestApplication {

    private AtomicLong id = new AtomicLong();

    @RequestMapping("/bean")
    public String getBeans(@RequestParam(value="name")String name){
        return new Bean(id.incrementAndGet(), name).toString();
    }

    class Bean{
        public Bean(long l, String name) {
        }
    }
    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }
}

在没有该代理的情况下在本地测试应用程序,这样您就可以确保您的应用程序工作正常。

你发布了你的应用程序启动日志,看起来你的控制器不是地图。也许您的控制器没有被应用程序扫描。控制器必须位于包含由@SpringBootApplication注释的类的包的子包中,这样组件扫描器就可以看到它。

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

https://stackoverflow.com/questions/45878462

复制
相关文章

相似问题

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