为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2021-11-03 09:59:18
我创建了两个项目:具有所有客户端代码的 web 项目。项目具有服务器端代码,如 rest API 等。当我尝试从 Web 项目调用 rest API 时,使用 tomcat 服务器无法访问 API。如何从其他项目访问rest API?给出错误:HTTP 状态 404 - /clientSide/rest/hello客户端代码<a href="/rest/hello">Click Here</a>服务器端代码你好.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>
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

您犯的错误是您没有指定资源的完整路径,IpAddress:port/War-name/url-pattern/resource-name但是您的资源路径是/clientSide/rest/hello.


例如,我创建了一个 Rest API 并构建了一个战争名称War_name并将其部署在端口上tomcat运行。现在我创建了一个客户端代码,如下所示。注意部分。locally8080href


<html>


    <body>


        <h1>Test</h1>


        <a href="http://localhost:8080/War_Name/rest/names">Link</a>

    </body>


</html>

你可以看到我是如何提到full-path to the resource- http://localhost:8080/War_Name/rest/names 的。指定 IpAddress 和端口后,我有 war_name 然后是注释中url-pattern指定的资源的最后路径@Path。


当我点击Link我能够看到我的 Rest-Api 返回的输出。


查看完整回答
反对 回复 2021-11-03
  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信