问题标签 [playorm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
playorm - 我的代码在本地运行并发出警告,但未在服务器上运行
我有一个需要使用 PlayORM 来完成插入/查询等工作的网络应用程序。我的代码在本地运行没有任何问题,但出现以下警告消息:
com.alvazan.orm.impl.meta.scan.ScannerForClass processIdFieldWorksWARN:我们避免重复扫描一个 class=class com.alvazan.orm.impl.meta.data.MetaClassSingle 一切仍然可以正常工作,但请向我们发送堆栈跟踪,以便我们可以看到为什么会发生这种情况 java.lang.RuntimeException: null at com.alvazan.orm.impl.meta.scan.ScannerForClass.processIdFieldWorks(ScannerForClass.java:234) [playorm-1.4.3.jar:1.4.3 December 13 2012]
但是当我尝试在 JSF 页面上执行该代码时,该代码不起作用。以下是错误信息:
INFO caoimpl.meta.scan.ScannerForClass - 扫描类=类 com.alvazan.orm.api.z8spi.meta.DboColumnMeta java.lang.RuntimeException: 失败扫描类(参见链式异常)=类 com.alvazan.orm.api。 z8spi.meta.DboColumnMeta
有人知道我能做些什么来解决这个问题吗?
更新:
- 第一个堆栈跟踪 - 在本地运行良好(运行外部网站)
2013-02-13 19:20:18,173 com.alvazan.orm.impl.meta.scan.ScannerForClass processIdFieldWorksWARN:我们避免双重扫描一个类=类 com.alvazan.orm.impl.meta.data.MetaClassSingle 一切仍然有效很好,但是请向我们发送堆栈跟踪,以便我们了解为什么会发生这种情况 java.lang.RuntimeException: null at com.alvazan.orm.impl.meta.scan.ScannerForClass.processIdFieldWorks(ScannerForClass.java:234) [playorm- 1.4.3.jar:1.4.3 December 13 2012] at com.alvazan.orm.impl.meta.scan.ScannerForClass.inspectFieldImpl(ScannerForClass.java:206) [playorm-1.4.3.jar:1.4.3 December 13 2012] 在 com.alvazan.orm.impl.meta.scan.ScannerForClass.inspectField(ScannerForClass.java:193) [playorm-1.4.3.jar:1.4.3 December 13 2012] 在 com.alvazan.orm.impl。 meta.scan.ScannerForClass.scanFields(ScannerForClass.java:188) [playorm-1.4.3.jar:1.4.3 December 13 2012] at com.alvazan.orm.impl.meta.scan.ScannerForClass.scanSingle(ScannerForClass.java:111) [playorm-1.4.3.jar:1.4.3 December 13 2012] at com.alvazan.orm .impl.meta.scan.ScannerForClass.scanMultipleClasses(ScannerForClass.java:104) [playorm-1.4.3.jar:1.4.3 December 13 2012] at com.alvazan.orm.impl.meta.scan.ScannerForClass.addClass( ScannerForClass.java:64) [playorm-1.4.3.jar:1.4.3 December 13 2012] 在 com.alvazan.orm.layer0.base.MyClassAnnotationDiscoveryListener.scanClass(MyClassAnnotationDiscoveryListener.java:42) [playorm-1.4.3。 jar:1.4.3 December 13 2012] at com.alvazan.orm.layer0.base.MyClassAnnotationDiscoveryListener.discovered(MyClassAnnotationDiscoveryListener.java:34) [playorm-1.4.3.jar:1.4.3 December 13 2012] at com.impetus .annovention.Discoverer.discoverAndIntimateForClassAnnotations(Discoverer.java:197) [playorm-1.4.3.jar:1.4.3 2012 年 12 月 13 日] 在 com.impetus.annovention.Discoverer.discover(Discoverer.java:155) [playorm-1.4.3.jar:1.4.3 2012 年 12 月 13 日] at com.alvazan.orm.layer0.base.BaseEntityManagerFactoryImpl.rescan(BaseEntityManagerFactoryImpl.java:82) [playorm-1.4.3.jar:1.4.3 December 13 2012] at com.alvazan.orm.layer0.base.BaseEntityManagerFactoryImpl .setup(BaseEntityManagerFactoryImpl.java:133) [playorm-1.4.3.jar:1.4.3 December 13 2012] at com.alvazan.orm.impl.bindings.BootstrapImpl.createInstanceImpl(BootstrapImpl.java:64) [playorm-1.4 .3.jar:1.4.3 December 13 2012] at com.alvazan.orm.impl.bindings.BootstrapImpl.createInstance(BootstrapImpl.java:35) [playorm-1.4.3.jar:1.4.3 December 13 2012] at com.alvazan.orm.api.base.Bootstrap.create(Bootstrap.java:57) [playorm-1.4.3.jar:1.4.3 December 13 2012] 在 com。alvazan.orm.api.base.Bootstrap.create(Bootstrap.java:52) [playorm-1.4.3.jar:1.4.3 December 13 2012] at com.alvazan.orm.api.base.Bootstrap.create(Bootstrap .java:45) [playorm-1.4.3.jar:1.4.3 December 13 2012] 在 com.alvazan.orm.api.base.Bootstrap.create(Bootstrap.java:24) [playorm-1.4.3.jar :1.4.3 December 13 2012] at com.s1mbi0se.dmp.da.dao.PlayOrmConfiguration.init(PlayOrmConfiguration.java:45) [classes/:na] at com.s1mbi0se.dmp.da.dao.PlayOrmConfiguration.getEntityManager( PlayOrmConfiguration.java:51) [classes/:na] 在 com.s1mbi0se.dmp.da.dao.AbstractDao.getEm(AbstractDao.java:10) [classes/:na] 在 com.s1mbi0se.dmp.da.dao。 UserDao.findInputPhase(UserDao.java:201) [classes/:na] 在 com.s1mbi0se.dmp.da.bean.InputPhaseStru.manageInputPhase(InputPhaseStru.java:105) [classes/:na] 在 com.s1mbi0se.dashboard。服务。DashboardService.readSolrLogFile(DashboardService.java:44) [classes/:na] at com.s1mbi0se.dashboard.service.DashboardService.main(DashboardService.java:29) [classes/:na]
- 第二个堆栈跟踪 - 不起作用(网络环境)
19:05:54.090 [http-bio-8080-exec-3] 信息 c.alvazan.orm.logging.NoSqlRawLogger - [rawlogger] 启动 NoSQL 服务提供程序并连接 19:05:54.101 [http-bio-8080-exec- 3] INFO caolsdcColumnFamilyHelper - On keyspace=dmpExisting column family=[inputphasestru, stringindice, dbocolumnmeta, integerindice, user, dbodatabasemeta, dbotablemeta] 注意:我们将在您保存没有列族的实体时自动创建新的列族 19:05:54.101 [http-bio-8080-exec-3] INFO caolbBaseEntityManagerFactoryImpl - 使用 nosql.Persistence.class 19:05:54.102 开始扫描 jars [http-bio-8080-exec-3] INFO ciannovention.ClasspathDiscoverer - 添加 jar 文件进行扫描=jar:file:/opt/apache-tomcat-7.0.30/wtpwebapps/teste28/WEB-INF/lib/playorm-1.4.3.jar!/ 19:05:54.102 [http-bio-8080-exec-3 ] 信息annovention.ClasspathDiscoverer - 添加用于扫描的 jar 文件=jar:file:/opt/apache-tomcat-7.0.30/lib/playorm-1.4.3.jar!/ 19:05:54.102 [http-bio-8080-exec- 3] INFO ciannovention.ClasspathDiscoverer - 添加用于扫描的 jar 文件=jar:file:/opt/apache-tomcat-7.0.30/wtpwebapps/teste28/WEB-INF/lib/dmpDataAccess-0.0.1-SNAPSHOT.jar!/ 19 :05:54.119 [http-bio-8080-exec-3] 调试 caolbMyClassAnnotationDiscoveryListener - class=com.alvazan.orm.api.z8spi.meta.DboColumnMeta anno=com.alvazan.orm.api.base.anno.NoSqlEntity 19: 05:54.119 [http-bio-8080-exec-3] INFO caoimpl.meta.scan.ScannerForClass - 扫描类=类 com.alvazan.orm.api.z8spi.meta.DboColumnMeta java.lang.RuntimeException:失败扫描类(见链式异常)=com.alvazan.orm.layer0.base 的类 com.alvazan.orm.api.z8spi.meta.DboColumnMeta。MyClassAnnotationDiscoveryListener.scanClass(MyClassAnnotationDiscoveryListener.java:44) at com.alvazan.orm.layer0.base.MyClassAnnotationDiscoveryListener.discovered(MyClassAnnotationDiscoveryListener.java:34) at com.impetus.annovention.Discoverer.discoverAndIntimateForClassAnnotations(Discoverer.java:197) at com .impetus.annovention.Discoverer.discover(Discoverer.java:155) 在 com.alvazan.orm.layer0.base.BaseEntityManagerFactoryImpl.rescan(BaseEntityManagerFactoryImpl.java:82) 在 com.alvazan.orm.layer0.base.BaseEntityManagerFactoryImpl.setup (BaseEntityManagerFactoryImpl.java:133) 在 com.alvazan.orm.impl.bindings.BootstrapImpl.createInstanceImpl(BootstrapImpl.java:64) 在 com.alvazan.orm.impl.bindings.BootstrapImpl.createInstance(BootstrapImpl.java:35) 在com.alvazan.orm.api.base.Bootstrap.create(Bootstrap.java:57) 在 com。alvazan.orm.api.base.Bootstrap.create(Bootstrap.java:52) 在 com.alvazan.orm.api.base.Bootstrap.create(Bootstrap.java:45) 在 com.alvazan.orm.api.base。 Bootstrap.create(Bootstrap.java:24) 在 com.s1mbi0se.dmp.da.dao.PlayOrmConfiguration.init(PlayOrmConfiguration.java:45) 在 com.s1mbi0se.dmp.da.dao.PlayOrmConfiguration.getEntityManager(PlayOrmConfiguration.java: 51) 在 com.s1mbi0se.dmp.da.dao.PlayOrmConfiguration.init(PlayOrmConfiguration.java:45) 在 com.s1mbi0se.dmp.da.dao.PlayOrmConfiguration.getEntityManager(PlayOrmConfiguration.java:51) 在 com.s1mbi0se.dmp .da.dao.AbstractDao.getEm(AbstractDao.java:10) 在 com.s1mbi0se.dmp.da.dao.UserDao.findInputPhase(UserDao.java:201) 在 com.s1mbi0se.dmp.da.bean.InputPhaseStru.manageInputPhase (InputPhaseStru.java:105) 在 com.s1mbi0se.dashboard.service.DashboardService。在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 javax.el.BeanELResolver.getValue(BeanELResolver.java:87 ) 在 javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67) 在 org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:169) 在 org.apache.el.parser.AstValue。 getValue(AstValue.java:183) 在 org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185) 在 org.apache.jasper.el.JspValueExpression。getValue(JspValueExpression.java:106) 在 javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:246) 在 javax.faces.component.UIOutput.getValue(UIOutput.java:67) 在 javax.faces.component.UIInput .getValue(UIInput.java:150) 在 org.apache.myfaces.shared.renderkit.RendererUtils.getValue(RendererUtils.java:505) 在 org.apache.myfaces.shared.renderkit.RendererUtils.getStringValue(RendererUtils.java:331 ) 在 org.apache.myfaces.shared.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:186) 在 org.apache.myfaces.shared.renderkit.html.HtmlTextRendererBase.renderInputBegin(HtmlTextRendererBase.java:197)。 apache.myfaces.shared.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:75) 在 javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:580) 在 javax。faces.component.UIComponent.encodeAll(UIComponent.java:762) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:758) at org.apache.myfaces.shared.view.JspViewDeclarationLanguageBase.actuallyRenderView(JspViewDeclarationLanguageBase.java: 362) 在 org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285) 在 org.apache.myfaces.lifecycle .RenderResponseExecutor.execute(RenderResponseExecutor.java:115) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199) at org. org.apache.catalina.core 中的 apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)。ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 在 org .apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve .java:99) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在 org.apache.catalina。 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent .ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) 原因: com.google.inject.ProvisionException:Guice 配置错误:908) 在 java.lang.Thread.run(Thread.java:662) 引起:com.google.inject.ProvisionException:Guice 提供错误:908) 在 java.lang.Thread.run(Thread.java:662) 引起:com.google.inject.ProvisionException:Guice 提供错误:
1) 注入构造函数时出错,java.lang.NoClassDefFoundError: Could not initialize class com.alvazan.orm.api.z8spi.meta.DboTableMeta at com.alvazan.orm.impl.meta.data.MetaClassInheritance.(MetaClassInheritance.java:25 ) 同时定位 com.alvazan.orm.impl.meta.data.MetaClassInheritance
在 com.alvazan.orm.impl.meta.data.MetaInfo.findOrCreate(MetaInfo.java:58) 在 com.alvazan 的 com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987) 出现 1 个错误。 orm.impl.meta.scan.ScannerForClass.addClass(ScannerForClass.java:59) at com.alvazan.orm.layer0.base.MyClassAnnotationDiscoveryListener.scanClass(MyClassAnnotationDiscoveryListener.java:42) ... 63 更多原因:java.lang .NoClassDefFoundError:无法在 com.alvazan.orm.impl.meta.data.MetaAbstractClass.(MetaAbstractClass.java:17) 在 com.alvazan.orm.impl 初始化类 com.alvazan.orm.api.z8spi.meta.DboTableMeta .meta.data.MetaClassInheritance.(MetaClassInheritance.java:25) 在 com.alvazan.orm.impl.meta.data.MetaClassInheritance$$FastClassByGuice$$9298a112.newInstance() 在 com.google.inject.internal.cglib.reflect .$FastConstructor。newInstance(FastConstructor.java:40) 在 com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60) 在 com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 在 com. google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 在 com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) 在 com.google.inject.internal.InjectorImpl。 callInContext(InjectorImpl.java:1024) 在 com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) ... 66 更多inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 在 com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) 在 com.google.inject.internal.InjectorImpl.callInContext( InjectorImpl.java:1024) 在 com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) ... 66 更多inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 在 com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) 在 com.google.inject.internal.InjectorImpl.callInContext( InjectorImpl.java:1024) 在 com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) ... 66 更多
遵循整个堆栈跟踪...
谢谢 !
安德烈
playorm - PlayFramework 2.x 和 playorm ClassNotFoundException: play.Plugin
我尝试通过 PlayFramework 2.x 连接到 cassandra,但出现常见异常 ClassNotFoundException: play.Plugin。我已经完成了 wiki 页面https://github.com/deanhiller/playorm/wiki/PlayFramework-2.x-support上的所有内容。这是我的 maven(我使用 mvn 存储库中的 playorm.jar)项目http://code.google.com/p/cassandranosql-firebrandocm-playorm/source/browse/trunk/,如您所见,有一个测试类UserPlayormDaoImplTest,其中调用NoSql.em();抛出 ClassNotFoundException。我将 plugin2.1.jar 添加到类路径中,但是找不到该类。我不知道有什么问题。感谢帮助。
堆栈跟踪:
cassandra - PlayORM 中的二级索引是如何实现的,是否支持/处理并发更新?
对于处理并发更新的二级索引,有几种滚动您自己的策略,例如:
http://www.slideshare.net/edanuff/indexing-in-cassandra
它使用 3 个 ColumnFamilies。
我的问题是,PlayORM@NoSqlIndexed
注释是如何实现的;就需要/创建哪些额外的 ColumnFamilies 而言?
此外,是否支持并发更新 - 即,两个竞争更新不可能从一个更新索引和另一个更新表?
playorm - 在 PlayFramework 2.1 中安装 PlayOrm?
我采取的步骤:
- 启动了一个新的 Play 应用程序。
- 创建了一个 lib 文件夹。
- 复制到lib:playOrm/output/jardist/*.jar + playorm/output/libs/playorm.jar + playorm/src/resources/play2plugin/plugin2.1jar
- 更改了 conf 并添加了 play.plugins.conf 根据:http ://buffalosw.com/wiki/PlayFramework-2.x-support/
- 在这一点上,我开始玩,并得到了 google gson 的缺失类异常。我也将它添加到库中。
现在,当我运行 play 应用程序时,我得到:
插件 [play.CorePlugin] 无法实例化。java.lang.NoSuchMethodException: play.CorePlugin.(play.Application)
我错过了什么?
更新:将我原始帖子中的文件名从 plugin.conf 更正为 play.plugins 并添加堆栈跟踪:
playorm - PlayORM 中的基本分区
假设我在 cassandra 中有一个具有以下模式的 CF:
- 时间戳
- 设备编号
- 设备名称
- 设备所有者
PKEY (TimeStamp, Device ID):这意味着分区正在发生在时间戳上。
以下是我感兴趣的查询:
Select * from schema where TimeStamp='..' Select * from schema where DeviceID='..'
第一个查询返回 500K 记录,第二个查询返回 50K 记录。对于第一个查询,瓶颈都是在单个节点上获取,所以我想将数据分布在多个节点上以获得时间戳。第二次查询的瓶颈是所有记录可能分布在不同节点的磁盘上,导致多次磁盘获取。
现在假设我想创建虚拟分区,这样特定时间戳的条目也分布在集群节点上。这在 PlayORM 中可行吗?如果是,您能否提供可以这样做的代码(或这样做的示例)?
我的另一个要求是搜索特定设备 ID 的所有记录。我可以对同一个 CF 的“设备 ID”进行虚拟分区吗?如果是,您能否提供代码/链接来说明如何操作?
如果有人能提供做这样的事情的源代码,我会很高兴,因为文档不是那么容易理解,而且仅仅通过阅读当前文档来编写代码就是一场噩梦。如果没有“完整”的代码示例,评估 PlayORM 似乎是不可能的。
playorm - PlayORM 可以利用顺序数据布局吗?
与 Cassandra 的分区相比,我想讨论 PlayORM 的虚拟分区是否始终是分区数据的最佳方式。
架构:
- 时间戳
- 设备ID
- 设备名称
- 设备所有者
对于 TimeStamp,有 500 K 行,对于特定的 Device ID,有 10 K 行
如果我想在 2 列上进行分区,请说时间戳和设备 ID。我有以下方法可以做到这一点:
- 使用 PlayORM 在两列上进行“虚拟”分区,这样任何列的任何虚拟分区的数据都分布在所有节点上。
- 使用 Cassandra 对其中一列的内置分区支持,并使用 PlayORM 的方法在其他列上创建“虚拟”分区。
如果“设备 ID”以“Cassandra”方式进行分区,则特定“设备 ID”的所有记录将存储在磁盘中的连续位置,并且可以像 playorm 那样继续使用“时间戳”的虚拟分区方法。我可能比 PlayORM 的方法更喜欢这种方法的原因是,使用 Cassandra 的分区方法,如果特定设备 ID 的所有记录位于磁盘上的物理连续位置,则可以快速获取它们,因为它们的数量较少(仅 10K)。这可能比 PlayORM 将所有分区的记录均匀分布在节点上的全部方法更好,因为这样数据将随机分布在磁盘上,导致许多磁盘寻道,显然这会减慢速度。所以即使在 PlayORM 的方法中,
以上似乎是一个有效的观点,还是我的理解有问题?
cassandra - 使用 PlayOrm 读取查询确实返回适当的结果
我刚刚开始探索 PlayOrm 并尝试运行网络上可用的基本代码来插入和读取数据。当我插入数据时,一切似乎都工作正常,但在读取相同的数据时,它返回的行数不正确。例如。如果我插入 3 条记录,有时会得到 0 条记录,有时会返回所有记录。
按照我正在使用的代码:
用于插入/读取数据的类:
使用此类的代码:
用户数据的内容:
playorm - PlayOrm 级联实体移除
如果我使用remove
实体管理器的方法,如下:
并假设 DGEntity 与其他实体有很多关联,remove 方法会仅删除实体 e 还是也会删除关联的类?
我希望我可以通过使用注释配置或向方法传递附加参数来级联删除......这可能吗?
playorm - 编译 PlayORM 示例的异常
在创建“User.java”和空白“Persistence.java”后,我得到一个编译“Example.java”的异常。以下是详细信息:
据我了解,内存数据库测试不需要安装 Cassandra。
我需要做什么?