成功测试后,Chrome 中未显示 RESTful 响应

Posted

技术标签:

【中文标题】成功测试后,Chrome 中未显示 RESTful 响应【英文标题】:RESTful response is not displaying in Chrome after successful test 【发布时间】:2021-12-29 14:59:40 【问题描述】:

我正在努力完成课程的活动部分,但遇到了一些障碍。该活动的目标是使用 NetBeans IDE 使用 restful 服务显示文本字符串。

当我在 Netbeans 中运行 TEST RESTful Web 服务选项时,它起作用了:

但是,当我运行程序时,我在浏览器中看到的只是一个空白页:

一开始我以为我的编码不正确,所以我重新练习,但还是得到了相同的结果。在最后一次尝试之后,我打开了解决方案文件并得到了正确的代码,但是解决方案代码显示了一个输出,但我的仍然没有。为什么浏览器不显示字符串的路径?

如果我直接在 Chrome 中输入路径,它会完全按照应有的方式显示。

然后我尝试向 index.html 文件添加重定向,从而实现了练习的预期结果,但我认为这不符合问题的精神:

我确信有一种“正确”的方法可以做到这一点,但我无法解决。这是我的代码:

RestService.java

package restService;

import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PUT;
import javax.ws.rs.core.MediaType;

/**
 * REST Web Service
 *
 * @author Matthew
 */
@Path("rest")
public class RestSevice 

    @Context
    private UriInfo context;

    /**
     * Creates a new instance of RestSevice
     */
    public RestSevice() 
    

    /**
     * Retrieves representation of an instance of restService.RestSevice
     * @return an instance of java.lang.String
     */
    @GET
    @Path("/banner")
    @Produces(MediaType.TEXT_HTML)
    public String getHtml() 
        return "<HTML><body><h1>This is a RESTful response!</h1></<body></html>";
    

    /**
     * PUT method for updating or creating an instance of RestSevice
     * @param content representation for the resource
     */
    @PUT
    @Consumes(javax.ws.rs.core.MediaType.TEXT_PLAIN)
    public void putText(String content) 
    

index.html

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <title>RESTful service</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <div>
            <ul>
                <meta http-equiv="Refresh" content="0; url='http://localhost:8080/RESTservice/webresources/rest/banner'" />
            </ul>
        </div>
    </body>
</html>

【问题讨论】:

Chrome's Developer Tools,如您的空白页屏幕截图所示,可能会有所帮助。当您看到空白页时,查看 NetworkConsole 选项卡的内容。有什么注意事项吗? 【参考方案1】:

在重新查看我的代码和工作示例后,我发现我上面的编码方式是一种“正确”的做事方式。

该示例有一个可点击的链接,然后显示路径,从而生成正确的链接。

我一直在努力的空白页面只是一个空链接。 (有点感觉有点愚蠢)并自动重定向。它解决了问题。

【讨论】:

以上是关于成功测试后,Chrome 中未显示 RESTful 响应的主要内容,如果未能解决你的问题,请参考以下文章

DatePicker 在 Bootstrap 3 (Safari/Chrome) 的模式窗口中未正确显示

Google Chrome 中未生成接力候选人

Chrome(基于 webkit 的浏览器)的 SVG sprite 中未显示 defs 中的渐变

首次使用Restful进行webservice接口开发小结

在 Chrome 中未显示 Font Awesome 图标,这是与 MaxCDN 相关的跨域资源共享策略问题

在 chrome 中未删除会话 cookie 的解决方法