TwoRavens配置的完整过程及异常处理方法
TowRavens是开源项目Dataverse用到的数据可视化统计的API, 其主界面很简单,就是一个html,数据的可视化实现依赖javascript的可视化数据库d3.js,数据的进一步处理则依赖R语言。
其主要工作流程如下:
1.在Dataverse客户端上传带处理的指定类型的数据文件,服务器讲数据初步解析后放入临时文件中。
(Dataverse由glassfish支持)
2.用户通过Dataverse的入口调用TwoRavens应用,同时将数据的路径传入TwoRavens。
(TwoRavens由apache支持)
3.TwoRavens通过js将数据解析,运用d3数据库将数据图形化,并解析成json对象。
4.数据的进一步统计则通过ajax机制,将json对象发送(POST)到Rserve端。
5.Rserve将数据统计完毕后返回到TwoRavens,再通过d3将数据图形化展示出来。
同时TwoRavens还提供许多数据统计的模型处理,也都是依赖于Rserve完成的。
TwoRavens提供的功能非常强大,其中运用到了d3,ajax,rserve等多方面的功能。虽然是开源的,Dataverse的官方指南也有TwoRavens的详细配置过程(点击这里查看)。可是将整个应用完整的配置到自己的服务器上还是一个比较艰巨的任务,其中会遇到不少关卡。
1.首先,遇到的第一个问题就是在Dataverse客户端找不到进入TwoRavens的入口。
正常情况下,当一个数据类型的文件上传之后,在其文件管理列表旁边会有对应文件的操作按钮Explore,点击该按钮就可以进入TwoRavens将对于数据做可视化分析。
查看Explore按钮的html样式之后发现
<ui:fragment rendered="#{ twoRavensHelper.canSeeTwoRavensExploreButtonFromPage(fileMetadata) and !worldMapPermissionHelper.canUserSeeExploreWorldMapButtonFromPage(fileMetadata)}">
<!-- TwoRavens Explore button ONLY ... not WorldMap -->
<h:commandLink rendered="#{!downloadPopupRequired}"
type="button" styleClass="btn btn-default #{fileMetadata.dataFile.ingestInProgress ? 'disabled' : ''}"
disabled="#{fileMetadata.dataFile.ingestInProgress ? 'disabled' : ''}"
action="#{fileDownloadService.startExploreDownloadLink( guestbookResponse, fileMetadata )}" target="_blank">
<span class="glyphicon glyphicon-equalizer"/> <span class="ladda-label">#{bundle.explore}</span>
</h:commandLink>
<p:commandLink rendered="#{downloadPopupRequired}"
type="button" styleClass="btn btn-default"
action="