RESTEasy:从 MongoDB 获取产品列表

问题描述

我正在使用公司的名为 MongoDynamicObject 的预构建库来获取文档列表(在我的情况下为“产品”),并将其作为 json 显示在 Wildfly 服务器 (RESTeasy) 上。 我可以通过 id 显示特定文档,但不能显示它们的列表。我收到错误 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

希望你们能帮我得到一份文件清单。 谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)