java - 在 Eclipse 中运行 Java REST API

标签 java eclipse spring rest maven

我正在尝试关注this guide .

我已经下载了 gs-rest-service 项目并将其导入到我的工作区中。

现在我只想运行该项目 - 但无论我尝试什么似乎都会失败。我是否正确地认为我需要将此项目部署到服务器,以便我可以在后台永久运行它并让它回复我的 REST 调用?我怎样才能做到这一点?

我尝试过以几乎所有方式运行该项目,作为 Java 应用程序/Java Applet/Maven 构建。一切似乎都失败了。

我是 Spring 和 MVN 的新手,所以我意识到我无疑在这里做了一些非常非常愚蠢的事情 - 如果有人能告诉我那是什么,我将非常感激。

谢谢。

最佳答案

您实际上并不需要 Spring 应用程序来运行您的 Web 服务。您可以尝试以下步骤

1) 创建并运行 Rest 服务

创建动态 Web 项目。将其托管在您选择的应用程序服务器中。 请点击以下链接: first application using Rest

2) 创建一个 Rest 客户端

创建一个新的java项目 -> 创建一个新的Java类来进行其余的调用

import java.util.List;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;

public class WebServiceTester  {

   private Client client;
   private String REST_SERVICE_URL = "http://localhost:8080/UserManagement/rest/UserService/users";
   private static final String PASS = "pass";
   private static final String FAIL = "fail";

   private void init(){
      this.client = ClientBuilder.newClient();
   }

   public static void main(String[] args){
      WebServiceTester tester = new WebServiceTester();
      //initialize the tester
      tester.init();
      //test get all users Web Service Method
      tester.testGetUsers();

   }
   //Test: Get list of all users
   //Test: Check if list is not empty
   private void testGetUsers(){
      GenericType<List<User>> list = new GenericType<List<User>>() {};
      List<User> users = client
         .target(REST_SERVICE_URL)
         .request(MediaType.APPLICATION_XML)
         .get(list);
      String result = PASS;
      if(users.isEmpty()){
         result = FAIL;
      }
      else{
          for(User each: users){
          System.out.println("user id :"+each.getId());
          System.out.println("user name :"+each.getName());
          System.out.println("user id :"+each.getProfession());
          }

      }
      System.out.println("Test case name: testGetUsers, Result: " + result );


   }

}

运行上述客户端程序所需的库

<classpathentry kind="lib" path="lib/javax.ws.rs-api-2.0.1.jar"/>
<classpathentry kind="lib" path="lib/jersey-client.jar"/>
<classpathentry kind="lib" path="lib/jersey-common.jar"/>
<classpathentry kind="lib" path="lib/jersey-media-jaxb.jar"/>
<classpathentry kind="lib" path="lib/hk2-api-2.4.0-b34.jar"/>
<classpathentry kind="lib" path="lib/hk2-locator-2.4.0-b34.jar"/>
<classpathentry kind="lib" path="lib/hk2-utils-2.4.0-b34.jar"/>
<classpathentry kind="lib" path="lib/jersey-guava-2.22.2.jar"/>
<classpathentry kind="lib" path="lib/javax.inject-2.4.0-b34.jar"/>
<classpathentry kind="lib" path="lib/javax.annotation-api-1.2.jar"/>

关于java - 在 Eclipse 中运行 Java REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38723901/

相关文章:

java - 通过 apache tomcat 8 运行时无法运行 h2 数据库查询

eclipse - 导入 scala.io.StdIn

spring - 扩展的 OAuth2RestTemplate 无法连接

java - 如何在 sql 查询中在 spring 中使用 LIMIT?

java - 是否可以使用 geotools 编写具有自定义属性定义的形状文件?

java - 每 1 秒打印一次数组

android - 当 proxifier 运行时,eclipse 显示 "Unable to establish loopback connection"

java - Dao 类的通用类

java - 下面提到的函数声明的正则表达式

java - Spring REST多个@RequestBody参数,可能吗?