#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