来自Spring Application的“无可用消息”的错误页面

时间:2017-05-09 13:00:13

标签: spring-boot

我的主要入门课程

package com.project.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@SpringBootApplication
public class HelloworldClientApplication {

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

我的资源档案

   package com.project.controller;

   import org.springframework.beans.factory.annotation.Autowired;
   import org.springframework.web.bind.annotation.GetMapping;
   import org.springframework.web.bind.annotation.RequestMapping;
   import org.springframework.web.bind.annotation.RestController;
   import org.springframework.web.client.RestTemplate;

   /**
   *
   * @author Wasp Networks
   */
    @RestController
    @RequestMapping("/rest/client/helloworld")
    public class HelloResources {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping
    public String Entry(){
        String url = "http://helloworld-server/rest/server/helloworld";
        return restTemplate.getForObject(url, String.class);
    }

    @RequestMapping("/")
    public String Main(){
       return "Helloworld client!.";
    }

}

我的配置类

package com.project.configuration;
/**
*
* @author Wasp Networks
*/
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;


@Configuration
public class Configure {
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

如果您的spring代码结构是这样的,并且您尝试运行该应用程序,那么在Web控制台上获取错误并不会感到惊讶。

抱歉我的英语不好......

1 个答案:

答案 0 :(得分:0)

这个问题的解决方案是将我们的软件包放在嵌套的顺序中,如果你看一下代码包没有嵌套而不是放在同一个文件夹/包“project”中。

而不是:

    package com.project.cloud;
    package com.project.controller;
    package com.project.configuration;

这样做: -

    package com.project.cloud;
    package com.project.cloud.controller;
    package com.project.cloud.configuration;

在应用程序的主入口点包下创建其他包,其中定义了@SpringBootApplication,当使用这个注释@SpringBootApplication时,它只扫描你放置它的包.......希望这有帮助。