RESTEasy: Получите список продуктов от MongoDB

#java #mongodb #resteasy

Вопрос:

Я использую предварительно созданную библиотеку компании под названием MongoDynamicObject, чтобы получить список документов (в моем случае «продукты») и отобразить его на сервере wildfly (RESTeasy) в формате json. Я могу показать конкретный документ по идентификатору, но не могу показать их список. Я получил ошибку java.util.ArrayList cannot be cast to system.mongo.core.data.MongoDynamicObject

Это мое Data.java

 public class Data {

    // Get Product

    private static MongoObjectConnector getProductConnector() {
        return Connector.getMongoConnector("request1", "product");
    }

    public static MongoDynamicObject getProduct(String id) {
        return (MongoDynamicObject) getProductConnector().get(id);
    }

    public static MongoDynamicObject getProducts() {
        return (MongoDynamicObject) getProductConnector().listAll();
    }
}
 

Мой API.class

 @Path(value="/v1/demo")
public class API {
    @Context
    ServletContext context;

    @GET
    @Path("service/product/{id}")
    @Produces("application/json")
    public Object getProductsData(@PathParam("id") String id) {
        MongoDynamicObject name = Data.getProduct(id);
        if (null != name) {
            return name.getInternalDocument();
        }

        return "not Found";
    }

    @GET
    @Path("service/products")
    @Produces("application/json")
    public Object getProductData() {
        List<Document> documentList = new ArrayList<>();
        List<MongoDynamicObject> result = (List<MongoDynamicObject>) Data.getProducts();
        for (MongoDynamicObject item : result) {
            documentList.add(item.getInternalDocument());
        }
        return documentList;
    }
}
 

Мой Connector.java:

 public class Connector {
    private static ConcurrentHashMap<String, MongoObjectConnector> connectorMap = new ConcurrentHashMap<String, MongoObjectConnector>();

    public static MongoObjectConnector getMongoConnector(String mongoDBName, String mongoCollectionName) {
        String key = mongoDBName   ":"   mongoCollectionName;
        MongoObjectConnector connector = connectorMap.get(key);
        if (null == connector) {
            if (null == System.getProperty("mongo.config.path")) {
                System.setProperty("system.config.dir", "/Users/nguyenducminhnguyen/Downloads/MyRestAPI/mongo.conf");
            }
            connector = new MongoObjectConnector(mongoDBName, mongoCollectionName);
            connectorMap.put(key, connector);
        }
        return connector;
    }
}
 

В MongoDynamicObject.jar компоненты:
https://www.evernote.com/shard/s370/sh/fcbb34ad-3c22-8b03-5eef-ab6fc1b9ba81/c7075443fe38ae3311107315198a389b

Надеюсь, вы, ребята, поможете мне получить список документов. Спасибо.

Комментарии:

1. Вот что я могу сделать: i.imgur.com/qv2ppyr.png