首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取NoSuchMethodError:当引导对象

获取NoSuchMethodError:当引导对象
EN

Stack Overflow用户
提问于 2014-06-10 19:49:53
回答 1查看 106关注 0票数 1

我正在尝试构建一个小型应用程序,用于学习,使用Dart、MongoDB和Objectory。为此,我创建了一个基本模型:

代码语言:javascript
复制
part of myapp;

class Member extends PersistentObject {

  String get username => getProperty('username');
  set username(String value) => setProperty('username',value);

  String get password => getProperty('password');
  set password(String value) => setProperty('password',value);

  // more fields here
}

void registerClasses() {
  objectory.registerClass(Member, () => new Member());
}

在我的主应用程序文件中,我有:

代码语言:javascript
复制
library myapp;

import "package:redstone/server.dart" as app;
import "package:objectory/objectory.dart";
import "dart:core";

part "lib/member.dart";

Objectory objectory;

void main() {
  objectory = new Objectory("mongodb://localhost/myapp", registerClasses, false);
  objectory.initDomainModel().then((_) {
    app.setupConsoleLog();
    app.start(address: "127.0.0.1", port: 8080);
  });
}

当我运行它时,我会得到以下错误:

代码语言:javascript
复制
Breaking on exception: object of type NoSuchMethodError
Unhandled exception:
The null object does not have a method 'dataMapDecorator'.

NoSuchMethodError: method not found: 'dataMapDecorator'
Receiver: null
Arguments: [Instance of '_LinkedHashMap']
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:45)
#1      BasePersistentObject.BasePersistentObject (package:objectory/src/persistent_object.dart:10:46)
#2      PersistentObject.PersistentObject (package:objectory/src/persistent_object.dart:1:1)
#3      Member.Member (file:///Users/lucian/Projects/dart/eviq/bin/lib/member.dart:1:1)
#4      registerClasses.<anonymous closure> (file:///Users/lucian/Projects/dart/eviq/bin/lib/member.dart:74:45)
#5      Objectory.registerClass (package:objectory/src/objectory_base.dart:118:39)
#6      registerClasses (file:///Users/lucian/Projects/dart/eviq/bin/lib/member.dart:74:26)
#7      Objectory.initDomainModel (package:objectory/src/objectory_base.dart:141:28)
#8      main (file:///Users/lucian/Projects/dart/eviq/bin/eviq.dart:13:28)
#9      _startIsolate.isolateStartHandler (dart:isolate-patch/isolate_patch.dart:216)
#10     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:124)

知道我做错了什么吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 05:15:26

您正在安装基类Objectory类。针对服务器端和浏览器环境,有面向对象的具体实现。假设您在服务器端尝试使用Objec有钱,那么您应该使用ObjectoryDirectConnectionImpl

例如,请参见console.dart

代码语言:javascript
复制
library blog_example;
import 'package:objectory/objectory_console.dart';
import '../domain_model/domain_model.dart';


const Uri = 'mongodb://127.0.0.1/objectory_blog';
main(){
  objectory = new ObjectoryDirectConnectionImpl(Uri,registerClasses,true);
  var authors = new Map<String,Author>();
  var users = new Map<String,User>();
  objectory.initDomainModel().then((_) { 

ObjectoryDirectConnectionImpl构造函数命令的第三个参数,在打开了对示例和测试有用的db -有用的集合后,可能应该使它成为false

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24149700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档