RESTful 成功测试后 Chrome 中未显示响应
RESTful response is not displaying in Chrome after successful test
我正在努力完成课程的活动部分,但遇到了一些障碍。 activity 的对象是使用 restful 服务显示文本字符串,使用 NetBeans IDE.
当我在 Netbeans 中 运行 测试 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>
在重新查看我的代码和工作示例之后,我发现我上面的编码方式是一种“正确”的做事方式。
该示例有一个可点击的 link,然后显示路径,从而得到正确的 link。
我苦苦挣扎的空白页面只是一个空白 link。 (感觉有点傻)和自动重定向。它解决了问题。
我正在努力完成课程的活动部分,但遇到了一些障碍。 activity 的对象是使用 restful 服务显示文本字符串,使用 NetBeans IDE.
当我在 Netbeans 中 运行 测试 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>
在重新查看我的代码和工作示例之后,我发现我上面的编码方式是一种“正确”的做事方式。
该示例有一个可点击的 link,然后显示路径,从而得到正确的 link。
我苦苦挣扎的空白页面只是一个空白 link。 (感觉有点傻)和自动重定向。它解决了问题。