当前位置: 首页 > 知识库问答 >
问题:

@RestController返回空白

易宣
2023-03-14

我正在构建我的第一个Spring Boot应用程序。但是我不能正确地得到我的requestMapping控制器的回答。

这是我的主要课程:

package com.hello.world;

@SpringBootApplication 
public class HelloWorld implements CommandLineRunner{

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

    @Override
    public void run(String... args) throws Exception {
    ....
}

}

这是我的RestController:

package com.hello.world.controllers;


@RestController
public class UrlMappingControllers {


        @RequestMapping("/hi")
        String home() {
            return "Hello World!";
        }

}

如果我看一下日志,我可以看到“/hi”映射:

  restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hi]}" onto java.lang.String com.hello.world.controllers.UrlMappingControllers.home()

但是当我访问:http:localhost:8080/hi时,我看到了一个空白页面,我期望看到“Hello World”文本。

为什么我得到一个空白页面?

---编辑----

我刚刚意识到,只有当我添加cxf服务时,我才会得到空白页。我认为这是因为@configuration对这个类的注释:

package com.hello.world.helloWorld.configuration;

@Configuration
public class CXFConfiguration {
         @Bean
         public ServletRegistrationBean dispatcherServlet() {
             return new ServletRegistrationBean(new CXFServlet(), "/services/*");
         }

         @Bean(name=Bus.DEFAULT_BUS_ID)
         public SpringBus springBus() {
             SpringBus springBus = new SpringBus();
        return springBus;
         }


         @Bean
            public Endpoint endpointGreentingService() {
                EndpointImpl endpoint = new EndpointImpl(springBus(), new GreetingServiceImpl());
                endpoint.getFeatures().add(new LoggingFeature());
                endpoint.publish("/GreetingService");
                return endpoint;
        }
}

会不会有关联?

共有1个答案

姚俊材
2023-03-14

这意味着当您在超文本传输协议:localhost:8080/hi调用您的api时,响应的主体将包含home()处理程序的结果,即“Hello world”。

@RestController幕后使Spring MVC使用Json消息转换器(默认情况下),并且类中的所有处理程序方法都用@RestController注释将返回JSON,这就是为什么您在浏览器上看不到文本的原因。

您可以使用Postman或ARC测试您的应用程序。一些web浏览器(如Firefox)直接显示JSON。

 类似资料:
  • 我试图测试我的RestController代码(Spring Boot项目),但我总是得到404。以下是我目前掌握的情况: } } 结果总是这样: 我做错了什么?我已经尝试过直接在setUp方法中用标准设置()初始化mockmvc,我还使用了@SpringBootTest和@AutoConfigreMockMvc相结合。 有人有什么有用的提示吗?我使用spring boot 2.1.4。 谢谢

  • 我有一个Spring MVC控制器,方法如下: 它位于一个开始如下所示的控制器内部: 我使用的是Spring WebMVC 4.1.3和Jackson 2.4.3。我尝试在RequestMapping中添加一个“produces”属性,表示它应该返回JSON。在本例中,发回的Content-Type属性是“application/json”,但仍然没有引用测试字符串。 我可以通过调用JSON库将J

  • 我正在试用新的Spring 4.0@RestController,以从控制器返回一个简单的文本响应: 当我访问/心跳时,我返回: 结果包括双引号,这是我没有想到的。 当我访问/heartbeat/test时,我会得到一个空响应,但我希望我还活着!文本 使现代化 卷曲-ihttp://myserver.com/rest/heartbeat HTTP/1.1 200 OK内容类型:applicatio

  • 我无法理解为什么findFragmentByTag()在我的代码中返回null。我已经在片段onCreate()上设置了RetainInstance(true),并且正在使用getSupportFragmentManager()。findFragmentByTag(),因为它是SherlockFragmentActivity。 这是我的活动代码: } 这是我的片段代码:

  • 下面是我的控制器代码:- 以下是我的服务代码:- 下面是我的存储库代码:-

  • 我在Spring Boot服务中有一个rest控制器,如下所示: 我可以让服务生成八位元组流和application/Json,但我的困惑在于出现错误时字节数组的返回类型,在这种情况下,我希望生成Json而不是字节数组 请给我出主意如何解决这个问题