货币兑换项目Postman测试出现404错误,请求排查协助
解决货币兑换项目接口404错误的排查步骤
首先明确:postman_id和exporter_id只是Postman集合的元数据,和接口404没有任何关系,不用在这两个字段上浪费时间。下面是针对你问题的具体排查和修复方案:
1. 检查Tomcat部署的上下文路径
你当前请求的URL是http://localhost:8080/currencies,但如果你的项目部署时带有上下文路径(比如项目打包后的war包名为CurrencyExchanger.war),正确的请求路径应该是:
http://localhost:8080/CurrencyExchanger/currencies
验证方法:访问http://localhost:8080,查看Tomcat首页的"已部署的应用程序"列表,找到你的项目对应的上下文路径,拼接到URL中。
2. 确认Servlet注解映射是否生效
你用了@WebServlet(value = "/currencies")注解,但需要确保项目支持Servlet注解驱动:
- 如果是基于web.xml的传统项目,需要在web.xml中添加
metadata-complete="false":<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="false"> </web-app> - 查看Tomcat启动日志,搜索
CurrenciesServlet,如果能看到类似Loading servlet 'indexCurrenciesServlet'的日志,说明Servlet已被正确加载;如果没有,说明注解没生效,建议改用web.xml手动配置Servlet:<servlet> <servlet-name>indexCurrenciesServlet</servlet-name> <servlet-class>com.yourpackage.CurrenciesServlet</servlet-class> <multipart-config/> </servlet> <servlet-mapping> <servlet-name>indexCurrenciesServlet</servlet-name> <url-pattern>/currencies</url-pattern> </servlet-mapping>
3. 修正Postman请求的错误配置
你的GET请求存在两个明显问题:
- GET请求不应该携带form-data body:HTTP规范中GET请求通常不包含请求体,虽然Postman允许发送,但Servlet可能无法正确解析,甚至直接拒绝。如果是要提交货币数据,应该把请求方法改成
POST。 - 无效的请求头:你添加了重复的
Date头和拼写错误的Da头,这些头不仅没用,还可能干扰请求处理,直接删除所有自定义请求头即可。
修正后的Postman请求配置参考:
- 方法:
POST - URL:
http://localhost:8080/[你的上下文路径]/currencies - Body:选择
form-data,保留name、code、sign三个参数(注意code应该符合规范,比如"USD"而不是"Dead inside") - 请求头:无需自定义,Postman会自动生成必要的头
4. 验证Tomcat运行状态
确保Tomcat确实在8080端口运行:
- 访问
http://localhost:8080,如果能看到Tomcat默认页面,说明服务正常;如果不能,检查Tomcat是否启动、端口是否被占用。
内容的提问来源于stack exchange,提问作者Display_name
相关产品推荐
相关产品推荐

