Javafx和Jersey:未找到Java类和MIME媒体类型application/xml的消息体读取器

Javafx和Jersey:未找到Java类和MIME媒体类型application/xml的消息体读取器,jersey,javafx-2,Jersey,Javafx 2,我制作了一个javafx客户端,它通过Jersey请求Web服务 以下是ws代码: public List<Document> findDocuments(String query, int row, int start) { String serviceUri = "/articleservices/searchservice/fulltext"; String queryParams = "/" + query + "/" + row + "/" + start

我制作了一个javafx客户端,它通过Jersey请求Web服务

以下是ws代码:

public List<Document> findDocuments(String query, int row, int start) {

    String serviceUri = "/articleservices/searchservice/fulltext";
    String queryParams = "/" + query + "/" + row + "/" + start;

    String queryUrl = StringUtils.join(new String[]{
        AppProperties.SEARCH_WS_BASE_ADDRESS, serviceUri, queryParams});
    log.debug("queryUrl: {}", queryUrl);

    SearchResult searchResult = new SearchResult();

    try {
        Client client = Client.create();
        WebResource webResource = client.resource(queryUrl);
        ClientResponse response = webResource.
                accept(MediaType.APPLICATION_XML).
                get(ClientResponse.class);

        if (response.getStatus() == 200) {
            searchResult = response.getEntity(SearchResult.class);
            log.debug("NbResults: {}", searchResult.getNbResultItem());

        } else {
            log.debug("Error");
        }
    } catch (Exception e) {
        log.debug(e.getMessage());
    }

    DocumentFactory docFactory = new DocumentFactory();

    return docFactory.createDocuments(searchResult);
}
需要帮忙吗

==更新==

SearchResult类如下所示

@XmlRootElement(name = "SEARCH-RESULT")
public class SearchResult implements Serializable {

    private static final long serialVersionUID = 87551L;

    // Nombre de résultat trouvé
    private long nbResultItem;

    // Liste contenant le format pivot de la bcp
    private List<SearchResultItem> resultItems;

    @XmlElement(name = "DOC-NUMBER")
    public long getNbResultItem() {
            return nbResultItem;
    }

    public void setNbResultItem(long nbResultItem) {
            this.nbResultItem = nbResultItem;
    }

    @XmlElement(name = "DOC-RESULTS")
    public List<SearchResultItem> getResultItems() {
            return resultItems;
    }

    public void setResultItems(List<SearchResultItem> resultItems) {
            this.resultItems = resultItems;
    }

}
@XmlRootElement(name=“SEARCH-RESULT”)
公共类SearchResult实现可序列化{
私有静态最终长serialVersionUID=87551L;
//诺姆布雷·德雷苏尔特·特鲁韦
私人长传电台;
//列出bcp的上下文格式透视
私有列表结果;
@xmlement(name=“DOC-NUMBER”)
public long getNbResultItem(){
返回nbResultItem;
}
公共无效设置nbResultItem(长nbResultItem){
this.nbResultItem=nbResultItem;
}
@xmlement(name=“DOC-RESULTS”)
公共列表getResultItems(){
返回结果;
}
public void setResultItems(列出resultItems){
this.resultItems=resultItems;
}
}

最后,我使用了org.springframework.web.client.rest模板。它工作得很好!

SearchResult类的外观如何?
AM com.sun.jersey.api.client.ClientResponse getEntity

Grave: A message body reader for Java class com.mycompany.search.beans.SearchResult, and Java type class com.mycompany.search.beans.SearchResult, and MIME media type application/xml was not found

Grave: The registered message body readers compatible with the MIME media type are:
    */* ->
      com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
      com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
      com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
@XmlRootElement(name = "SEARCH-RESULT")
public class SearchResult implements Serializable {

    private static final long serialVersionUID = 87551L;

    // Nombre de résultat trouvé
    private long nbResultItem;

    // Liste contenant le format pivot de la bcp
    private List<SearchResultItem> resultItems;

    @XmlElement(name = "DOC-NUMBER")
    public long getNbResultItem() {
            return nbResultItem;
    }

    public void setNbResultItem(long nbResultItem) {
            this.nbResultItem = nbResultItem;
    }

    @XmlElement(name = "DOC-RESULTS")
    public List<SearchResultItem> getResultItems() {
            return resultItems;
    }

    public void setResultItems(List<SearchResultItem> resultItems) {
            this.resultItems = resultItems;
    }

}