feign,404的問題個人理解:
第一種:請求從本模塊中沒法出去;
第二種:請求出去,沒進入另一個模塊。
因為本項目是springboot在父模塊下的多個子模塊之間使用feign的調用,且項目最終打成一個jar包發布,所以在開發中遇見的問題如下:
第一:請求沒法出去、這里沒法出去的原因有很多,比如地址以及端口號沒配置正確
比如網上說的不能使用GetMapping()注解之類的,但是在這里好像是可以,有可能是版本不一樣,更新了吧;
上面這個會出現的問題有url的路徑問題,啥的;反正正常通過ip以及端口發出去就行;
第二種就是進不去:進不去;
我現在遇到的問題是系統登陸之后;通過頁面可以訪問該接口,但是在系統內部相互調用的時候,會出現問題,啥子原因呢?后來找到的結果是,給feign添加了token信息,也就是說在對另一個模塊請求的時候進行了攔截,未登錄,所以會出現了這個情況,具體添加配置如下:
import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.context.annotation.Configuration; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; /** * 跨模塊獲取登錄信息 * author * date 2020/2/20 0020 16:11 */ @Configuration public class FeignConfig implements RequestInterceptor { @Override public void apply(RequestTemplate requestTemplate) { ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = requestAttributes.getRequest(); requestTemplate.header("postman-token",request.getHeader("postman-token")); requestTemplate.header("cookie",request.getHeader("cookie")); } }
這里有一個額外的例子。可以看看:https://www.cnblogs.com/ft535535/p/9898147.html