一个web项目连接zuul网关连接后台多个服务。
示例:web端使用feignClient
package com.mark.demo.security.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.mark.demo.security.base.PaginateResult;
import com.mark.demo.security.entity.Menu;
import com.mark.demo.security.service.hystrix.MenuFeignFallBackFactory;
import com.mark.demo.security.service.hystrix.MenuFeignServiceHystrix;
/*
*hxp(hxpwangyi@126.com)
*2017年9月7日
*
*/
@FeignClient(name="menu",url="http://localhost:9999/service/menu",fallbackFactory=MenuFeignFallBackFactory.class)
@RequestMapping("/service/menu")
public interface MenuFeignService {
@RequestMapping("/getMenuTopLever")
List<Menu> getMenuTopLever();
@RequestMapping("/getMenuChildren")
List<Menu> getMenuChildren(@RequestParam("pid")int pid);
@RequestMapping("/updateMenu")
boolean updateMenu(@RequestBody Menu menu);
@RequestMapping(value="/list/data",method=RequestMethod.POST)
PaginateResult<Menu> listData(@RequestParam("menu") Menu menu,@RequestParam("pageSize")int pageSize,@RequestParam("currentPage")int currentPage);
}
zuul配置:
zuul.strip-prefix=true
zuul.routes.menu.path=/service/menu/**
zuul.routes.menu.service-id=menuService2
zuul.routes.resource.path=/service/resource**
zuul.routes.resource.service-id=resourceService
zuul.routes.user.path=/zuul/user/**
zuul.routes.user.service-id=userService
zuul.routes.commonRedis.path=/service/redis/common/**
zuul.routes.commonRedis.service-id=redisService
调试时发现404错误:日志打印zuul No route found for uri:
跟踪代码发现/zuul的默认context-path是/zuul,它会裁剪请求的url
加上一个配置
zuul.servlet-path=/
就可以调通了