기본적으로 내 log4mongo가 로그온하는 사용자 활동에 log4mongo 문서를 매핑하고 난 한 사용자를 선택하고 자신의 로그 항목을 보려는 메신저 매핑되지 않은 클래스에 매핑하려고 오류 "점점 :하우투이 코드는 여기에서 확인</p> <pre><code>BasicDBObject blogEntryDbObj = (BasicDBObject) mongo.getDB().getCollection("log").findOne(new BasicDBObject("_id", new ObjectId(blogEntryId))); </code></pre> <p>하지만 작동되어,</p> <p>을 자바 객체
log = morphia.fromDBObject(log.class, blogEntryDbObj);
을 package
이름은 log
C이 될해야합니까 어쩌면 과 관련이 없습니다. 아마도 POJO가 올바르게 설정되어 있지 않다는 것을 깨닫게됩니다.
하지만 무엇이 잘못되었는지 알 수 없습니다.
log4mongo 문서는 다음과 같습니다.
{
"_id" : ObjectId("4eecf4e4f9cb90f308193614"),
"timestamp" : new Date("Sat, 17 Dec 2011 21:00:36 GMT +01:00"),
"level" : "INFO",
"thread" : "Server.Connection:146.53.243.167:4570",
"message" : "setting RegistrationId for: zambe",
"loggerName" : {
"fullyQualifiedClassName" : "zambe.afa8cc37-4796-49c1-
a175-05a8daf0a88c",
"package" : ["zambe", "afa8cc37-4796-49c1-a175-05a8daf0a88c"],
"className" : "afa8cc37-4796-49c1-a175-05a8daf0a88c"
},
"fileName" : "PushUpdateRegistrationId.java",
"method" : "connect",
"lineNumber" : "61",
"class" : {
"fullyQualifiedClassName" :
"com.carlsberg.server.PushUpdateRegistrationId",
"package" : ["com", "carlsberg", "server",
"PushUpdateRegistrationId"],
"className" : "PushUpdateRegistrationId"
},
"host" : {
"process" : "[email protected]",
"name" : "ERIKSWEDMINI",
"ip" : "192.168.1.150"
}
}
여기
@Entity(value = "log")
public class log
{
@Id private ObjectId id;
Date timestamp;
Level level;
String thread;
String message;
@Embedded
LoggerName loggerName;
String fileName;
String method;
String lineNumber;
@Embedded("class")
LoggerClass loggerClass;
@Embedded
MyHost host;
}
@Entity(noClassnameStored=true)
@Embedded
class LoggerName
{
String fullyQualifiedClassName;
@Property("package")
String[] _package;
String className;
}
@Entity(noClassnameStored=true)
@Embedded
class LoggerClass
{
String fullyQualifiedClassName;
@Property("package")
String[] _package;
String className;
}
@Entity(noClassnameStored=true)
@Embedded
class MyHost
{
String process;
String name;
String ip;
}
로그 클래스를 먼저 매핑 했습니까? http://code.google.com/p/morphia/wiki/MappingObjects – Nat
@Nat 아니, 내가 잘못 된 장소에서 매핑했습니다. 이제는 효과가 있습니다. 답변을 게시하면 받아 들일 것입니다. "매핑은 인스턴스 메소드입니다 .DBObject에서 작동 시키려면 Morphia의 동일한 인스턴스에 매핑해야합니다." – Erik