如何配置Spring Web应用本地运行,解决接口访问404问题?
问题修复步骤
1. 修复DispatcherContext配置的包扫描错误
你在dispatcherContext.xml中的组件扫描配置写错了Model层的包名:
<!-- 错误写法,你的Model层包名是models不是model --> <context:component-scan base-package="repositories, model, services, controllers"></context:component-scan>
修改为:
<context:component-scan base-package="repositories, models, services, controllers"></context:component-scan>
这是404错误的核心原因:Controller类所在的包虽然配置了扫描,但因为中间Model包名拼写错误,导致整个扫描失效,Spring没有识别到你写的UserController,所以访问接口返回404。
2. 修复JDBC连接URL格式错误
你在ApplicationContext和Hibernate配置中写的RDS连接URL格式错误,端口号需要用冒号分隔而非斜杠:
<!-- 错误写法 --> <property name="url" value="jdbc:mysql://xxxxxxxx.rds.amazonaws.com/3306/PartyRoom" />
修改为:
<property name="url" value="jdbc:mysql://xxxxxxxx.rds.amazonaws.com:3306/PartyRoom" />
这个错误会导致后续应用虽然接口通了,但无法连接RDS,查询报错。
3. 移除冗余配置
- 你已经在ApplicationContext.xml中完整配置了DataSource、SessionFactory、Hibernate属性,无需再保留单独的Hibernate配置文件,避免配置冲突。
- 移除UserRepo类上的
@EnableTransactionManagement注解,该注解只能作用于配置类,你已经在xml中配置了事务管理器,该注解属于冗余配置,可能导致事务异常。
4. 确认Tomcat部署上下文路径
确认你部署到Tomcat的war包名称是否为PartyRoom.war,如果是ROOT.war则上下文路径为空,此时接口访问地址应为http://你的域名/users/all而非带/PartyRoom前缀的地址。
修复完成后重启应用,访问对应接口即可返回空数组,确认应用和RDS连接正常。
内容的提问来源于stack exchange,提问作者KayceKay
相关产品推荐
相关产品推荐

