NetBeans测试RESTful服务成功 运行后Chrome显示空白页问题咨询
问题原因
你遇到的空白页问题核心是项目默认访问路径与REST服务路径不匹配:
- NetBeans的「测试RESTful Web服务」功能会自动拼接完整的服务路径
/RESTservice/webresources/rest/banner发起请求,所以可以正常返回内容 - 直接运行项目时,NetBeans默认打开的是项目上下文根路径
/RESTservice/,Web容器会默认加载根目录下的index.html作为响应,未做自定义配置时index.html无内容,所以显示空白 - 手动输入完整服务路径可正常访问,已经验证了REST服务本身没有代码错误,运行状态正常。
规范实现方案
你目前使用meta标签重定向的方式存在两个问题:一是硬编码了域名、端口、项目上下文路径,更换部署环境后会直接失效;二是多了一次不必要的前端跳转。推荐使用下面两种更符合开发规范的方案:
方案1:修改欢迎页配置(最优方案)
直接在项目的WEB-INF/web.xml中配置欢迎页规则,不需要额外编写重定向逻辑,也可以直接删除原有index.html:
<welcome-file-list> <welcome-file>webresources/rest/banner</welcome-file> </welcome-file-list>
配置完成后,访问项目根路径时Web容器会自动请求你配置的服务路径,直接返回REST接口的内容,无需跳转。
方案2:新增根路径REST接口
如果不想修改web.xml配置,也可以新增一个映射根路径的REST接口,直接返回所需内容:
import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/") public class RootResource { @GET @Produces(MediaType.TEXT_HTML) public String getRootResponse() { return "<html><body><h1>This is a RESTful response!</h1></body></html>"; } }
配置完成后访问根路径会直接返回对应HTML内容,不需要额外跳转。
另外注意你原有代码的返回HTML里有笔误:</<body>多了一个左尖括号,建议修正避免部分浏览器解析异常。
内容的提问来源于stack exchange,提问作者Matthew Webster
相关产品推荐
相关产品推荐

