Javafx和Jersey:未找到Java类和MIME媒体类型application/xml的消息体读取器
我制作了一个javafx客户端,它通过Jersey请求Web服务 以下是ws代码: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
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;
}
}