当前位置: 首页 > 知识库问答 >
问题:

获取java ee 7中rest客户机调用的对象实例列表

艾嘉石
2023-03-14

我在Glassfish 4.1.1上使用java ee 7。有一个用C#编写的rest服务,它返回Book实例的集合。发送get请求的rest客户端代码:

public List<Bandwcorpus> downloadBandWCorpus(String corpus) {
    Client restClient = ClientBuilder.newClient();
    List<Bandwcorpus> ebooks=restClient
        .target("http://bookandwalk.pl/api/admindocumentlist")
        .queryParam("password", "XXXX").queryParam("corpusid", "YYYY")
        .request(MediaType.APPLICATION_JSON)
        .get(new GenericType<List<Book>>() {});
    restClient.close();
    return ebooks;
}

书籍类是一个战记:

public class Book {

    private static final long serialVersionUID = 1L;

    private Integer documentid;

    private String corpusid;

    private String corpusoriginalid;

    private float nett;

    private String currencyid;

    private int vat;

    private Discount discount;

    private Upoluj isbn;

    public Bandwcorpus() {

    }
}

我应用的get函数基于http://www.adam-bien.com/roller/abien/entry/jax_rs_returning_a_list博客文章,这个解决方案也应用在Javaee 7教程中。

不幸的是,在这种情况下,我得到以下编译错误:

error: no suitable method found for get(<anonymous com.fasterxml.classmate.GenericType<List<Book>>>)
    List<Book> ebooks=restClient.target("http://bookandwalk.pl/api/admindocumentlist").queryParam("password", "XXXXX").queryParam("corpusid", "YYYYY").request(MediaType.APPLICATION_JSON).get(new GenericType<List<Book>>() {});
method SyncInvoker.<T#1>get(Class<T#1>) is not applicable
  (cannot infer type-variable(s) T#1
    (argument mismatch; <anonymous com.fasterxml.classmate.GenericType<List<Bandwcorpus>>> cannot be converted to Class<T#1>))
method SyncInvoker.<T#2>get(javax.ws.rs.core.GenericType<T#2>) is not applicable
  (cannot infer type-variable(s) T#2
    (argument mismatch; <anonymous com.fasterxml.classmate.GenericType<List<Book>>> cannot be converted to javax.ws.rs.core.GenericType<T#2>))

其中T#1、T#2是类型变量:

>

  • T#1 扩展在方法中声明的对象

    T#2扩展了方法中声明的Object

    任何想法,如果这是Oracle和其他专家建议的方式,我犯了什么错误?


  • 共有2个答案

    丁子石
    2023-03-14

    对我来说是这样的,享受吧。

    public List<Persona> Buscar(String estado, String namescore) {
    
        WebTarget resource = webTarget;
        if (estado != null) {
            resource = resource.queryParam("estado", estado);
        }
        if (namescore != null) {
            resource = resource.queryParam("namescore", namescore);
        }
    
        List<Persona> Personass= resource.request(javax.ws.rs.core.MediaType.APPLICATION_JSON).get(new GenericType<List<Persona>>() {});
        return Personass;
    }
    
    晁文斌
    2023-03-14

    最后我找到了解决方案

    List<Book> e=restClient
        .target("http://bookandwalk.pl/api/admindocumentlist")
        .queryParam("password", "XXXXXX")
        .queryParam("corpusid_or_languagecode", "Example")
        .request(MediaType.APPLICATION_JSON)
        .get(new GenericType<List<Book>> () {});
    
     类似资料:
    • 我对JSON是新手。我正在调用公共rest API https://API.gdc.cancer.gov/cases

    • 我试图实现一个使用Spring Boot的客户机,它将从一个站点获取所有产品并将它们存储在数据库中。储存部分已经处理好了,但我很难找到所有产品的清单。当用Postman测试时,我可以用这样的身体得到响应:

    • 我正在使用Microsoft Azure。NET客户端库与Azure云存储交互。我需要能够访问其元数据集合中每个blob的附加信息。我目前正在使用CloudBlobDirectory。方法获取我在blob名称中设计的目录结构的特定目录中的blob列表。ListBlobs()方法返回IListBlobItem对象的列表。它们只有几个属性:Url和对父目录和父容器的引用。我需要获得实际blob对象的元

    • 在https://KeyCloak.gitbooks.io/server-developer-guide/content/v/2.2/topics/admin-rest-api.html中使用CURL的示例适用于从其Docker映像运行KeyCloak。 为了实现应用程序的最终目标形状,我希望使用客户端ID和机密而不是用户名+密码进行身份验证。 该令牌会导致对admin REST API的调用出现

    • 问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正

    • 我在做一个数独游戏,我有“cell”类型的9x9对象(类扩展了JTextField),我想防止在用户不符合游戏规则的情况下关注其他JTextField对象——他的输入(1-9)不会在同一行或同一个“块”。要做到这一点,我需要知道他关注的具体对象。 我正在考虑这样做的一种方法是使用DocumentFilter。我已经将输入过滤为数字和1长度,但我不知道如何获取他关注的“单元格”对象,我很确定Docu