问一个玄学问题,同一个网络请求中带了双斜杆,同一份代码,同事的请求返回 200,我的请求就是 405?

2019-08-09 16:48:14 +08:00
 jiezhi

新接手的一个项目,怎么都启动不了 报错:

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 执行的。

郁闷了。

1230 次点击
所在节点    问与答
4 条回复
yj21world
2019-08-09 16:50:49 +08:00
抓一下这个请求的包,对比一下

预估你们代码并不一致
Danswerme
2019-08-09 16:52:03 +08:00
斜杠转义了?
xsir2020
2019-08-09 16:57:29 +08:00
HTTP 405 错误 方法不被允许 (Method not allowed),
很多可能造成这种情况,
比如 ajax 跨域 ,options 预请求 会造成错误,但是 postman 等客户端就不会产生这种错误.

1、首先抓包对比是否一致
2、看大家的客户端都是些什么。
jiezhi
2019-08-09 17:13:03 +08:00
@yj21world #1
@xsir2020 #3 Spring 项目初始化请求的,用的第三方包,走的 HEAD 请求。我这边用 Paw、curl 和浏览器请求都是 405

也许抓包应该是最直接的了,看下同事有没有心情一起抓包验证了,我这边解决方案就是把配置中地址最后斜杆去了就行了。

就是有点莫名其妙。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/590521

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX