我使用Spring Cloud和Zuul proxy作为我的RESTful服务的网关。
网关应用程序(在端口8080上运行的Spring Boot web app)相关代码:-
主要类别:-
@SpringBootApplication
@EnableZuulProxy
public class WebfrontApplication extends WebMvcConfigurerAdapter {
/**
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(WebfrontApplication.class, args);
}
}
祖尔地图:-
zuul:
routes:
customer:
path: /customer/**
url: http://localhost:9000/
在启动上述UI网关应用程序期间,我可以在日志中看到代理映射已注册:-
o.s.c.n.zuul.web.ZuulHandlerMapping : Mapped URL path [/customer/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
REST服务(在端口9000上运行的Spring Boot web应用)相关代码:-
@RestController
@RequestMapping(value = "/customer")
public class CustomerController {
@Autowired
private CustomerService customerService;
/**
* Get List of All customers.
*
* @return
*/
@RequestMapping(value = "/list", method = RequestMethod.GET)
public List<Customer> list(Principal principal) {
return customerService.list();
}
}
使用rest客户端(在我的情况下是POSTMAN),我能够成功地从上面的endpoint获得响应(在处理身份验证令牌之后)。
我在UI应用程序中使用AngularJS从RESTendpoint获取数据。
相关代码:-
angular.module('customerModule').factory('customerService',function($http) {
return {
customerList : function(){
// PROBLEM !!!!!
// THIS CALL GIVES A 404 ERROR
return $http.get('/customer/list');
}
};
});
上面的调用是返回404错误:-这是我的Chrome调试器显示:-
Remote Address:127.0.0.1:8080
Request URL:http://localhost:8080/customer/list
Request Method:GET
Status Code:404 Not Found
请求标题:-
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,hi;q=0.6,ms;q=0.4
Cache-Control:no-cache
Connection:keep-alive
Cookie:SESSION=2e1ac330-fe41-4ff4-8efb-81eaec12c8d1
Host:localhost:8080
Pragma:no-cache
Referer:http://localhost:8080/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
X-Auth-Token:2e1ac330-fe41-4ff4-8efb-81eaec12c8d1
响应标题:-
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Content-Type:application/json; charset=UTF-8
Date:Fri, 20 Mar 2015 04:00:36 GMT
Date:Fri, 20 Mar 2015 04:00:36 GMT
Expires:0
Pragma:no-cache
Pragma:no-cache
Server:Jetty(9.2.9.v20150224)
Transfer-Encoding:chunked
X-Application-Context:bootstrap
X-Content-Type-Options:nosniff
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-Frame-Options:DENY
X-XSS-Protection:1; mode=block
X-XSS-Protection:1; mode=block
这是怎么了?是映射不正确还是我错过了什么?
解决了的
根据公认的答案,将Zuul映射更改为:-
zuul:
routes:
resource:
path: /customer/**
url: http://localhost:9000/
stripPrefix: false
如果不想设置stripPrefix
属性,也可以尝试以下配置:
zuul:
routes:
customer:
path: /customer/**
url: http://localhost:9000/customer
资源服务器上没有“/list”的映射(所以它是404)。您需要在路由声明中设置stripPrefix=false,或者将后端的请求映射更改为“/”。
我已经跟随杰弗里·韦的教程。 教程: https://laracasts.com/series/real-time-laravel-with-socket-io/episodes/1 null 我尝试使用
我不知道发生了什么,但在浏览器控制台中,我可以看到3个与字体相关的错误 我知道这是荒谬的,我不能自己解决这个问题,但一切似乎都好,在我的index.html我有这样的东西 这就是我所有与字体相关的东西,我已经检查了路径,我没有错。 这是发生在你们中间的吗? 更新 这是NGINX部分,我在头部加载了一些内容
我的站点将XML转换为HTML页面。在“Web pages”文件夹中,我创建了一个文件夹“Acces”,其中将包含生成的HTML页面和使用的图像。生成过程正常工作,它将HTML和jpg文件以corect格式放置在Acces文件夹中。我可以从我的本地磁盘上访问它们。当我试图在localhost:8080/myapp/acces/img/image1.jpg访问jpg时,它可以工作,但当我访问loca
我正在尝试spring-mvc和JSON。 项目在tomcat中部署成功,如localhost:8080/manager 所示 我试图发送json数据,并遵循“http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/” 我缺少什么? 谢谢
我已经编写了一个Spring MVC应用程序,它显示了在XML视图中运行的测试用例和套件的报告。我已经编写了模型类,它很好,我已经编写了以下文件,但我想处理程序映射有一些问题 我的Controller.java类如下所示 我得到一个404错误,控制台显示错误为 在名为“MVC-Dispatcher”的DispatcherServlet中,未找到URI为[/springmvc/suite/suite
JSoup-1.8.1 尝试{ Document Document=Jsoup.connect(url.get(); 返回Document.getElementsByTag(“title”).text(); }catch(异常e){ System.out.println(e); 返回null; } org.jsoup.HttpStatusExc0019: HTTP错误获取URL。状态=404, U
我已经创建了一个注册表。我不知道为什么现在它不再工作了。现在我收到一个404错误: 类型状态报告 信息/酒店预订/注册 说明源服务器找不到目标资源的当前表示形式,或不愿意透露存在该表示形式。 这是我的 登记Java语言 而这是我的 登记jsp 你认为我怎样才能解决这个问题?谢谢 编辑:这是我的: web.xml HTTP状态404–未找到 类型状态报告 信息/酒店预订/注册 说明源服务器找不到目标
在此处输入图像描述 WEB内容: 在此处输入图像描述 我不知道这个项目有什么问题,我发誓在我来这里问这个问题之前,我真的试图搜索结果。希望你们帮帮我,谢谢!