新接手的一个项目,怎么都启动不了 报错:
Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]: Constructor threw exception; nested exception is com.github.vanroy.springdata.jest.exception.JestElasticsearchException: Cannot execute jest action , response code : 405 , error : 405 Method Not Allowed , message : null
断点跟进去后发现请求 es 一个地址出错了,http://192.168.x.x:9200//goods
, 返回 405,外部工具调用同样 405。去掉配置文件后的斜杆后就可以正常启动了。
郁闷的是,同样的代码,同事那边就可以运行成功,断点进去,就是这个地址,他那边 HEAD 请求回来就是 OK 的。然后他curl --head "http://192.168.x.x:9200//goods"
返回也是 405,那他代码是怎么请求成功的?
代码中的请求是 jest-6.3.1 执行的。
郁闷了。
1
yj21world 2019-08-09 16:50:49 +08:00 1
抓一下这个请求的包,对比一下
预估你们代码并不一致 |
2
Danswerme 2019-08-09 16:52:03 +08:00 via Android 1
斜杠转义了?
|
3
xsir2020 2019-08-09 16:57:29 +08:00 1
HTTP 405 错误 方法不被允许 (Method not allowed),
很多可能造成这种情况, 比如 ajax 跨域 ,options 预请求 会造成错误,但是 postman 等客户端就不会产生这种错误. 1、首先抓包对比是否一致 2、看大家的客户端都是些什么。 |