问题描述
我正在使用公司的名为 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 (将#修改为@)