首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OAI导入- Dspace

OAI导入- Dspace
EN

Stack Overflow用户
提问于 2014-10-10 21:06:40
回答 2查看 1.3K关注 0票数 1

当我执行命令./dspace oai导入-c时

我得到以下错误:

代码语言:javascript
复制
OAI 2.0 manager action started
Clearing index
Index cleared
Using full import.
Full import
java.lang.NullPointerException
    at org.dspace.xoai.app.XOAI.index(XOAI.java:275)
    at org.dspace.xoai.app.XOAI.index(XOAI.java:229)
    at org.dspace.xoai.app.XOAI.indexAll(XOAI.java:210)
    at org.dspace.xoai.app.XOAI.index(XOAI.java:128)
    at org.dspace.xoai.app.XOAI.main(XOAI.java:439)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.dspace.app.launcher.ScriptLauncher.runOneCommand(ScriptLauncher.java:225)
    at org.dspace.app.launcher.ScriptLauncher.main(ScriptLauncher.java:77)
EN

回答 2

Stack Overflow用户

发布于 2015-04-26 10:35:56

如果您已经获取了由OAI索引的项,则这些项将导致异常。问题似乎是,当通过一个采集创建一个项目时,DSpace为submitter_id设置了一个无效的空值。

在活动的归档上没有简单的方法来解决这个问题;每次收集项目时,您都会遇到这个问题。我找到的唯一快速解决方法是直接在数据库中重置submitter_id字段的空值:

代码语言:javascript
复制
UPDATE item SET submitter_id = null WHERE submitter_id IS null;

问题并不真正出在doc.addField方法上,因为正确设置db null值将导致getSubmitter()方法正确地验证submitter_id为null,因此getEmail不返回任何内容。相反,问题出在DSpace用来设置null的无效值。

票数 2
EN

Stack Overflow用户

发布于 2014-11-16 22:30:33

详述user323094的评论:

查看这里的第275行:https://github.com/DSpace/DSpace/blob/c5e3b7150a24c669172492ab3dc276111328a865/dspace-oai/src/main/java/org/dspace/xoai/app/XOAI.java

此错误似乎是由以下原因引起的:

代码语言:javascript
复制
doc.addField("item.submitter", item.getSubmitter().getEmail());

因此,要么你有一个没有提交者的项目,这意味着getSubmitter导致了NPE,或者有一个提交者,但它没有电子邮件,这意味着getEmail将触发NPE。

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

https://stackoverflow.com/questions/26300190

复制
相关文章

相似问题

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