1

コマンド ./dspace oai import -c を実行すると
、次のエラーが表示されます。

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)
4

2 に答える 2

2

OAI によってインデックス化されているアイテムを収集した場合、これらのアイテムが例外の原因になります。問題は、アイテムがハーベスト経由で作成されるときに、DSpace が submitter_id に無効な null 値を設定することであると思われます。

アクティブなアーカイブでこれを回避する簡単な方法はありません。アイテムが収穫されるたびに、この問題が発生します。私が見つけた唯一の簡単な修正は、submitter_id フィールドの null 値をデータベースで直接リセットすることです。

UPDATE item SET submitter_id = null WHERE submitter_id IS null;

正しく設定された db null 値を持つと、getSubmitter() メソッドが submitter_id を null として正しく検証するため、getEmail は何も返さないため、問題は実際には doc.addField メソッドにはありません。むしろ、問題は DSpace が null を設定するために使用する無効な値にあります。

于 2015-04-26T02:35:56.167 に答える