Mongo Morphia mapPackage 未在包中映射 类
Mongo Morphia mapPackage doesn't map classes in package
我正在为 MongoDB/Java 使用 Morphia 映射器。我已经成功地在 GlassFish 服务器上使用了 Web 应用程序。我正在将我的项目迁移到 WildFly8.2.Final/JBoss。我在使用 Morphia 映射包时遇到问题。 Morphia mapping/scanning 软件包不起作用。它在 GlassFish 上运行良好,但在 WilfFly 上不起作用。
我认为这是一个 class 路径问题并做了一个小测试。
我通过单独映射 class 进行了实验,效果很好。它只是映射一个包是行不通的。我有以下 Morphia 代码。
代码:
public class MongoDataSource {
private static final String IP = XXXXXX;
private static final Integer PORT = XXXXXX;
private static final String DB_NAME = XXXXXX;
private static final String USERNAME = XXXXXX;
private static final String PWD = XXXXXX;
private static Morphia m;
private static Datastore ds;
private static DB db;
private static MongoClient client;
private static MongoDataSource INSTANCE = new MongoDataSource();
private MongoDataSource() {
m = new Morphia();
m.mapPackage("xxxx.model.user");//Works on Glassfish but doesnt work on WildFly/JBoss
m.map(xxxx.model.user.User.class);//My Experiment with loading a specific class in the package
try {
List<MongoCredential> credentials = new ArrayList<>();
credentials.add(MongoCredential.createMongoCRCredential(USERNAME, DB_NAME, PWD.toCharArray()));
ServerAddress servAddr = new ServerAddress(IP, PORT);
client = new MongoClient(servAddr, credentials);
db = client.getDB(DB_NAME);
ds = m.createDatastore(client, DB_NAME);
} catch (Exception e) {
//Log
}
}
public static Morphia getMorphia() {
return m;
}
public static Datastore getDatastore() {
return ds;
}
public static DB getDataBase() throws Exception {
return db;
}
}
我不明白的是,如果代码找不到包,它怎么能在包中找到 class。这是 Morphia API 中的错误还是 运行 WildFly/Jboss 上的应用程序时的某些 class 路径问题。我无法说服自己这是一个 class 路径问题。
吗啡中有几个与 mapPackage
相关的错误。两天前,使用 version 0.110
我遇到了该方法的错误,我 added to a existing issue in their GitHub
使用 mapPackage 检查 GitHub 中的相关问题,作为解决方法,您可以直接使用 morphia.map(ClassA.class, ClassB.class, ClassC.class);
提供 类
我正在为 MongoDB/Java 使用 Morphia 映射器。我已经成功地在 GlassFish 服务器上使用了 Web 应用程序。我正在将我的项目迁移到 WildFly8.2.Final/JBoss。我在使用 Morphia 映射包时遇到问题。 Morphia mapping/scanning 软件包不起作用。它在 GlassFish 上运行良好,但在 WilfFly 上不起作用。
我认为这是一个 class 路径问题并做了一个小测试。 我通过单独映射 class 进行了实验,效果很好。它只是映射一个包是行不通的。我有以下 Morphia 代码。
代码:
public class MongoDataSource {
private static final String IP = XXXXXX;
private static final Integer PORT = XXXXXX;
private static final String DB_NAME = XXXXXX;
private static final String USERNAME = XXXXXX;
private static final String PWD = XXXXXX;
private static Morphia m;
private static Datastore ds;
private static DB db;
private static MongoClient client;
private static MongoDataSource INSTANCE = new MongoDataSource();
private MongoDataSource() {
m = new Morphia();
m.mapPackage("xxxx.model.user");//Works on Glassfish but doesnt work on WildFly/JBoss
m.map(xxxx.model.user.User.class);//My Experiment with loading a specific class in the package
try {
List<MongoCredential> credentials = new ArrayList<>();
credentials.add(MongoCredential.createMongoCRCredential(USERNAME, DB_NAME, PWD.toCharArray()));
ServerAddress servAddr = new ServerAddress(IP, PORT);
client = new MongoClient(servAddr, credentials);
db = client.getDB(DB_NAME);
ds = m.createDatastore(client, DB_NAME);
} catch (Exception e) {
//Log
}
}
public static Morphia getMorphia() {
return m;
}
public static Datastore getDatastore() {
return ds;
}
public static DB getDataBase() throws Exception {
return db;
}
}
我不明白的是,如果代码找不到包,它怎么能在包中找到 class。这是 Morphia API 中的错误还是 运行 WildFly/Jboss 上的应用程序时的某些 class 路径问题。我无法说服自己这是一个 class 路径问题。
吗啡中有几个与 mapPackage
相关的错误。两天前,使用 version 0.110
我遇到了该方法的错误,我 added to a existing issue in their GitHub
使用 mapPackage 检查 GitHub 中的相关问题,作为解决方法,您可以直接使用 morphia.map(ClassA.class, ClassB.class, ClassC.class);