我正在尝试关注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/