如何从其他网络项目调用rest api

我创建了两个项目:

  1. 具有所有客户端代码的 web 项目。

  2. 项目具有服务器端代码,如 rest API 等。

当我尝试从 Web 项目调用 rest API 时,使用 tomcat 服务器无法访问 API。如何从其他项目访问rest API?

给出错误:HTTP 状态 404 - /clientSide/rest/hello

  1. 客户端代码

    <a href="/rest/hello">Click Here</a>

  2. 服务器端代码

你好.java

@Path("/hello")


public class Hello {

  @GET

  @Produces(MediaType.TEXT_PLAIN)

  public String sayPlainTextHello() {

    return "Hello Jersey Plain";

  }

  // This method is called if XML is request

  @GET

  @Produces(MediaType.TEXT_XML)

  public String sayXMLHello() {

    return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";

  }


  // This method is called if HTML is request

  @GET

  @Produces(MediaType.TEXT_HTML)

  public String sayHtmlHello() {

    return "<html> " + "<title>" + "Hello Jersey" + "</title>"

        + "<body><h1>" + "Hello Jersey HTML" + "</h1></body>" + "</html> ";

  }


}

网页.xml


<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

  <display-name>flatMateWeb</display-name>

   <servlet>  

    <servlet-name>Jersey REST Service</servlet-name>  

    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>  

    <init-param>  

        <param-name>jersey.config.server.provider.packages</param-name>  

        <param-value>com.javatpoint.rest</param-value>  

    </init-param>  

    <load-on-startup>1</load-on-startup>  

  </servlet>  

  <servlet-mapping>  

    <servlet-name>Jersey REST Service</servlet-name>  

    <url-pattern>/rest/*</url-pattern>  

  </servlet-mapping>  

</web-app>


萧十郎
浏览 139回答 1
1回答

慕田峪4524236

您犯的错误是您没有指定资源的完整路径,IpAddress:port/War-name/url-pattern/resource-name但是您的资源路径是/clientSide/rest/hello.例如,我创建了一个 Rest API 并构建了一个战争名称War_name并将其部署在端口上tomcat运行。现在我创建了一个客户端代码,如下所示。注意部分。locally8080href<html>&nbsp; &nbsp; <body>&nbsp; &nbsp; &nbsp; &nbsp; <h1>Test</h1>&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://localhost:8080/War_Name/rest/names">Link</a>&nbsp; &nbsp; </body></html>你可以看到我是如何提到full-path to the resource- http://localhost:8080/War_Name/rest/names 的。指定 IpAddress 和端口后,我有 war_name 然后是注释中url-pattern指定的资源的最后路径@Path。当我点击Link我能够看到我的 Rest-Api 返回的输出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java