HTTP状态404 - 在RESTAPI响应中找不到错误



昨天我创建了我的第一个REST API。

这是我的代码

package RestClient;
//import javax.servlet.annotation.WebServlet;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/RestClient")
public class Restwebclient {
    @GET
    @Produces(MediaType.TEXT_XML)
    public String sayXMLHello() {
        return "<?xml version="1.0"?>" + "<hello> Hello Jersey" + "</hello>";
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>Webservice</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
<servlet>
<servlet-name>JAVA WS</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
    <param-name>jersey.config.server.provider.packages</param-name>
    <param-value>RestClient</param-value>
</init-param>   
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>JAVA WS</servlet-name>
    <url-pattern>/Test</url-pattern>
</servlet-mapping>  
</web-app>

运行时,Apache Server在Eclipse中启动良好。但是,当我在本地主机上打开URL时,我期望我的数据不会来。它的显示错误,如下面的屏幕截图。

https://prnt.sc/gjatoq

这些URL也相同的错误

http://localhost:8080/Webservice/RestClient
http://localhost:8080/Webservice/Restwebclient
http://localhost:8080/Webservice/Restwebclient/Test
http://localhost:8080/Webservice/Test

我尝试了每件事,也切换了位置,也选择了"使用tomcat安装"选项。我真的有点卡住。

除了本地主机URL上的输出数据外,一切似乎都可以运行。

是否有人可以与我分享任何进一步的工作?

当您编写@Produces(MediaType.TEXT_XML)时,这意味着响应将包括一个名为Content-Type的HTTP标头,其值将为text/xml

但是,客户的请求必须能够接受此响应。客户端必须发送具有相同值的Accept HTTP标头(也可以是application/xml),否则Web服务器可能决定不发送响应,或者客户端可以决定将响应丢弃。

Chrome(或任何其他浏览器)可能不是测试REST API调用(或一般而言API)的最佳工具。不仅是因为HTTP标头,而且还可以使用GET以外的HTTP方法。您可以搜索Chrome Web Store以获取允许修改HTTP标头的MOD,或使用适当的HTTP客户端工具

我使用提琴手。它具有丰富的功能,包括对HTTP请求内容的全部控制。

相关内容

最新更新