Java 从Restfull服务(客户端应用程序内部)检索实体列表

Java 从Restfull服务(客户端应用程序内部)检索实体列表,java,web-services,rest,client,entities,Java,Web Services,Rest,Client,Entities,我是Rest web服务的新手,我说我使用Netbeans创建了这个web服务 @Path("browse") @Stateless public class ArticleBrowseResource { @EJB private ArticleSearcherLocal ejbRef; @GET @Produces(MediaType.APPLICATION_XML) public List<Article> browse(@DefaultVal

我是Rest web服务的新手,我说我使用Netbeans创建了这个web服务

@Path("browse")
@Stateless
public class ArticleBrowseResource {

   @EJB
   private ArticleSearcherLocal ejbRef;

   @GET
   @Produces(MediaType.APPLICATION_XML)
   public List<Article> browse(@DefaultValue("") @QueryParam("username") String username,@QueryParam("sd") String sd) {

      // convert sd string to date
      List<Article> articles = ejbRef.search(username, date);
      return articles;
   }
}
解决这个问题的最佳和最简单的方法是什么

我们非常感谢您的帮助
thx提前

请尝试更少的代码生成,更多地了解您实际在做什么。在服务器上,可以在JAXB的帮助下生成XML消息。在客户端,您可以使用自己喜欢的编程语言和库使用此XML。只要使用一些工具,比如看看“电线”上到底发生了什么。您生成的客户端站点看起来完全合理。您只需要从客户端的服务器端获取文章类。生成的代码使用的是,默认情况下,每个JAXB都可以读取XML消息。因此,只需将服务器端文章类放到客户端类路径中并使用它。但也请看一看wire-level协议,以了解REST API的可移植性。

请尝试更少的代码生成,更多地了解您的实际操作。在服务器上,可以在JAXB的帮助下生成XML消息。在客户端,您可以使用自己喜欢的编程语言和库使用此XML。只要使用一些工具,比如看看“电线”上到底发生了什么。您生成的客户端站点看起来完全合理。您只需要从客户端的服务器端获取文章类。生成的代码使用的是,默认情况下,每个JAXB都可以读取XML消息。因此,只需将服务器端文章类放到客户端类路径中并使用它。但也请看一下有线协议,以了解RESTAPI的可移植性。

hari是对的。如果在netbeans中使用SOAP Webservices,它会在wsimport的帮助下自动生成客户端中的所有类。所以问题是,是否有机会为RESTful服务自动生成类(而不是手动将它们设置到类路径中)。如果在netbeans中使用SOAP Webservices,它会在wsimport的帮助下自动生成客户端中的所有类。所以问题是,是否有机会为RESTful服务自动生成类(而不是手动将它们设置到类路径中)。
public class ArticleBrowseClient {
  private WebResource webResource;
  private Client client;
  private static final String BASE_URI = "http://localhost:8080/cityblog/rest";

  public ArticleBrowseClient() {
    com.sun.jersey.api.client.config.ClientConfig config = new com.sun.jersey.api.client.config.DefaultClientConfig();
    client = Client.create(config);
    webResource = client.resource(BASE_URI).path("browse");
  }

  public <T> T browse(Class<T> responseType, String username, String sd) throws UniformInterfaceException {
    WebResource resource = webResource;
    if (username != null) {
        resource = resource.queryParam("username", username);
    }
    if (sd != null) {
        resource = resource.queryParam("sd", sd);
    }
    return resource.accept(javax.ws.rs.core.MediaType.APPLICATION_XML).get(responseType);
  }

  public void close() {
    client.destroy();
  }

}