我使用Spring和Rest模板.Simplest one编写了一个Rest。这是我在控制器中写的代码。
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)
主修班:
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);
}
}
豆类:
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发布的应用程序
发布于 2017-08-25 10:59:35
这与您的spring引导应用程序无关。如果您的应用程序日志中有异常,请让我们知道堆栈跟踪。在您的代码片段中,没有初始化代码段id,因此您的代码无法工作:下面是我测试过的代码示例:
@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
注释的类的包的子包中,这样组件扫描器就可以看到它。
https://stackoverflow.com/questions/45878462
复制相似问题