gpt4 book ai didi

javascript - 如何从其他Web项目调用rest api

转载 作者:行者123 更新时间:2023-12-02 10:44:37 26 4
gpt4 key购买 nike

我创建了两个项目:

  1. 包含所有客户端代码的网络项目。
  2. 项目有服务器端代码,如 REST API 等。

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

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

  1. 客户端代码

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

  2. 服务器端代码

Hello.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> ";
}

}

web.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>

最佳答案

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

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

<html>

<body>

<h1>Test</h1>

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

</html>

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

当我单击链接时,我可以看到 Rest-Api 返回的输出。

关于javascript - 如何从其他Web项目调用rest api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52679677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com