Hi All,
We have installed in a test server DSPACE 4.0, we have configured it for the use of DOI from DATACITE.
We followed the guide line at https://wiki.duraspace.org/display/DSDOC4x/DOI+Digital+Object+Identifier
But now I wonder how we can test if.
Could someone give an help?
Thanks
Best regards
Massimiliano Cilurzo
Hi Massimiliano,
did you entered into a contract with a DOI registration agency? Did they provide you a username, a password and a (test-)prefix? Are you sure, they want you to use the DataCite API directly?
If you followed the instructions in the documentation, DSpace should mint DOIs whenever new items gets published into the repository. With “publish” I mean that the item is part of your repository, can be found using the normal search, and is not waiting for the user to finish the submission or for an administrator to accept it. The DOI is stored as metadata value of the item in the field dc.identifier.uri. So If you take a look on the published item you should find it there. As the documentation describes DSpace uses an asynchronous mechanism to register DOIs. Using the command line interface (https://wiki.duraspace.org/display/DSDOC4x/DOI+Digital+Object+Identifier#DOIDigitalObjectIdentifier-CommandLineInterface) you can list all DOIs waiting for reservation and/or registration. So, do you already have published an item after you configured DSpace to use DOIs? What happens if you executes [dspace-install]/bin/dspace doi-organiser -l?
Regards,
Pascal
Hi Pascal,
We have a contract with DataCite, and they have given to us username and password. I have followed the instructions in the documentation and inserted my credentials in dspace.cfg then I have done some change in the DIM2DataCite.xsl( <xsl:variable name="publisher">My university name </xsl:variable>) and finally I have removed the comment signs in the file identifier-service.xml.
After that I have inserted an new submission, I have seen that there was in the Doi table of the dspace database a new row for that item. But when I use the command line to reserve or register the DOI the system answer that there 0 object for reservation/registration.
If I try to execute the command dspace doi-organiser -l, the system say : command not found.
The only way to insert the item in Datacite for now is to insert it manually, from the datacite site.
Thanks for your help
Best regards
Massimiliano
Da: Becker, Pascal-Nicolas [mailto:p.be...@tu-berlin.de]
Inviato: venerdì 17 gennaio 2014 16:56
A: dspac...@lists.sourceforge.net
Cc: Massimiliano Cilurzo
Oggetto: RE: [Dspace-tech] DOI DATACITE
Hi Pascal,
I have executed dspace doi-organiser in the wrong directory.
When I execute bin/dspace doi-organiser -l?
The system answer is:
There are no DOIs queued for reservation.
There are no DOIs queued for registration.
DOIs queued for update:
doi:10.xxxx,10.5072/unisa-1 (belongs to item with handle 123456789/479)
doi:10.xxxxx,10.5072/un-2 (belongs to item with handle 123456789/480)
doi:10.xxxxx,10.5072/unisa-3 (belongs to item with handle 123456789/481)
doi:10.xxxx,10.5072/unisa-4 (belongs to item with handle 123456789/482)
doi: 10.5072/unisa-5 (belongs to item with handle 123456789/485)
doi: 10.5072/unisa-6 (belongs to item with handle 123456789/486)
There are no DOIs queued for deletion.
When I go in the Datacite site, I can’t see any of this item.
Thanks
Kind regards
Massimiliano
Da: Becker, Pascal-Nicolas [mailto:p.be...@tu-berlin.de]
Inviato: venerdì 17 gennaio 2014 16:56
A: dspac...@lists.sourceforge.net
Cc: Massimiliano Cilurzo
Oggetto: RE: [Dspace-tech] DOI DATACITE
Hi Massimiliano,
Hi Massimiliano,
as written in the DSpace Documentation DSpace uses an asynchronous approach to register DOIs. Whenever DSpace wants to reserver/register a DOI, it just writes in the DOI table what should be done. The doi-organiser does the real work (by sending one or multiple requests to datacite, containing the metadata and the information if a doi should be reserved, registered, …). So to send your registration request to DataCite, you have to run the doi-organiser as described here: https://wiki.duraspace.org/display/DSDOC4x/DOI+Digital+Object+Identifier#DOIDigitalObjectIdentifier-%27cron%27jobforasynchronousreservation/registration
To test it, you can start these commands manually on the command line. For regular use I would suggest a cronjob.
It’s up to you to decide how often the doi-organiser should be triggered by the cronjob. The decision you have to make is how much time is acceptable for you between the moment DSpace adds a DOI to the metadata of an item and the moment the DOI is functional (registered). I would make this decision depending on the number of submissions you have per day. On smaller repositories it should be acceptable to run the doi-organsier perhaps twice a doi. But if you want to, you can run it more often, f.e. every 15 minutes…
The reason we did it this way, is to ensure that DSpace is still working even if DataCite should have some down time…
Did this helps you? What happens if you run [dspace]/bin/dspace doi-organiser –u?
Hi Pascal,
Thanks for your help now I’m understanding how it works.
When I execute [dspace]/bin/dspace doi-organiser –u the answer is this:
Unable to send email alert.
It wasn't possible to update this identifier: doi:10.142xx,10.5072/unisa-1
Unable to send email alert.
It wasn't possible to update this identifier: doi:10.142xx,10.5072/unisa-2
Unable to send email alert.
It wasn't possible to update this identifier: doi:10.142xx,10.5072/unisa-3
Unable to send email alert.
It wasn't possible to update this identifier: doi:10.142xx,10.5072/unisa-4
Unable to send email alert.
It wasn't possible to update this identifier: doi:10.142xx/unisa-5
Unable to send email alert.
It wasn't possible to update this identifier: doi:10.142xx/unisa-6
Da: Becker, Pascal-Nicolas [mailto:p.be...@tu-berlin.de]
Inviato: giovedì 23 gennaio 2014 13:00
Hi Massimiliano,
you’re on the right way, but there is still some error. What does the doi-organiser writes into [dpsace]/logs/dspace.logs?
Hi Pascal,
in this is the dspace.log after the command dspace/bin/dspace doi-organiser –u
…
….
org.dspace.content.MetadataSchema @ Loading schema cache for fast finds
2014-01-24 09:53:40,896 WARN org.dspace.identifier.doi.DataCiteConnector @ While reserving the DOI doi:10.xxxx,10.5072/unisa-1, we got a http status code 404 and the message "<?xml version="1.0" encoding="UTF-8"?>
<html><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/><meta content="IE=8" http-equiv="X-UA-Compatible"/><link href="/resources/dijit/themes/tundra/tundra.css;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2" type="text/css" rel="stylesheet"></link><link href="/resources/styles/standard.css;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2" media="screen" type="text/css" rel="stylesheet"></link><link href="/resources/dojox/highlight/resources/pygments/emacs.css;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2" rel="stylesheet"></link><link href="/resources/images/favicon.ico;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2" rel="SHORTCUT ICON"/><script type="text/javascript">var djConfig="en_US"; </script><script type="text/javascript" src="/resources/dojo/dojo.js;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2"></script><script type="text/javascript" src="/resources/spring/Spring.js;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2"></script><script type="text/javascript" src="/resources/spring/Spring-Dojo.js;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2"></script><script type="text/javascript" src="/resources/js/jquery-1.5.1.min.js;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2"></script><script type="text/javascript" language="JavaScript">dojo.require("dojo.parser");</script><title>Welcome to DataCite Metadata Store</title></head><body class="tundra spring"><div id="wrapper"><div version="2.0" id="header"><div id="title"><a title="Home" name="Home" href="/;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2"><img src="/resources/images/dc-logo.gif;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2"/>
Metadata Store
</a></div><div id="topmenu">You are not logged in | <span><a href="/login;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2">Login</a></span></div><br style="clear:both"/></div><div id="main"><div version="2.0"><script type="text/javascript">dojo.require('dijit.TitlePane');</script><div id="_title_title_id"><script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_title_title_id', widgetType : 'dijit.TitlePane', widgetAttrs : {title: 'Requested Resource Not Found', open: true}})); </script><h2>Requested Resource Not Found</h2><p>Sorry, we did not find the resource you were looking for.</p></div></div><div version="2.0" id="footer"><span><a href="/;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2">Home</a></span> | <span id="language">Language: <a title="Switch language to English" href="?lang=en"><img alt="Switch language to English" src="/resources/images/flags/en.png;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2" class="flag"/></a> <a title="Switch language to Deutsch" href="?lang=de"><img alt="Switch language to Deutsch" src="/resources/images/flags/de.png;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2" class="flag"/></a> <a title="Switch language to French" href="?lang=fr"><img alt="Switch language to French" src="/resources/images/flags/fr.png;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2" class="flag"/></a> </span> | <span><a href="/login;jsessionid=8EC5E96E127CC2CD35C2A70011CCE3B2">Login</a></span></div></div></div></body></html>".
2014-01-24 09:53:40,920 WARN org.dspace.identifier.doi.DOIOrganiser @ Unable to send email alert
javax.mail.internet.AddressException: Illegal address in string ``''
at javax.mail.internet.InternetAddress.<init>(InternetAddress.java:94)
at org.dspace.core.Email.send(Email.java:261)
at org.dspace.identifier.doi.DOIOrganiser.sendAlertMail(DOIOrganiser.java:914)
at org.dspace.identifier.doi.DOIOrganiser.update(DOIOrganiser.java:689)
at org.dspace.identifier.doi.DOIOrganiser.runCLI(DOIOrganiser.java:265)
at org.dspace.identifier.doi.DOIOrganiser.main(DOIOrganiser.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.dspace.app.launcher.ScriptLauncher.runOneCommand(ScriptLauncher.java:225)
at org.dspace.app.launcher.ScriptLauncher.main(ScriptLauncher.java:77)
2014-01-24 09:53:40,921 ERROR org.dspace.identifier.doi.DOIOrganiser @ It wasn't possible to update this identifier: doi:10.xxxx,10.5072/unisa-1 Exceptions code: BAD_ANSWER
org.dspace.identifier.doi.DOIIdentifierException: Unable to parse an answer from DataCite API. Please have a look into DSpace logs.
at org.dspace.identifier.doi.DataCiteConnector.reserveDOI(DataCiteConnector.java:564)
at org.dspace.identifier.doi.DataCiteConnector.updateMetadata(DataCiteConnector.java:681)
at org.dspace.identifier.DOIIdentifierProvider.updateMetadataOnline(DOIIdentifierProvider.java:412)
at org.dspace.identifier.doi.DOIOrganiser.update(DOIOrganiser.java:669)
at org.dspace.identifier.doi.DOIOrganiser.runCLI(DOIOrganiser.java:265)
at org.dspace.identifier.doi.DOIOrganiser.main(DOIOrganiser.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.dspace.app.launcher.ScriptLauncher.runOneCommand(ScriptLauncher.java:225)
at org.dspace.app.launcher.ScriptLauncher.main(ScriptLauncher.java:77)
2014-01-24 09:53:42,294 WARN org.dspace.identifier.doi.DataCiteConnector @ While reserving the DOI doi:10.14273,10.5072/unisa-2, we got a http status code 404 and the message "<?xml version="1.0" encoding="UTF-8"?>
Thanks
Best regards,
Massimiliano
Da: Becker, Pascal-Nicolas [mailto:p.be...@tu-berlin.de]
Inviato: giovedì 23 gennaio 2014 18:10
A: Massimiliano Cilurzo; dspac...@lists.sourceforge.net
Hi Massimiliano,
you should configure your E-Mail settings. DSpace wanted to send a mail to the address configured in alert.recipient, but this field was empty (you can find more information here: https://wiki.duraspace.org/display/DSDOC4x/Configuration+Reference#ConfigurationReference-DSpaceEmailSettings).
I see two problems with your DOI-Configuration in the log. The first is, that the DOIs have strange names (doi:10.xxxx,10.5072/unisa-1), the second is that the request seems to be send to the wrong address.
Which values have you set in [dspace]/config/dspace.cfg for doi.identifier.prefix and doi.identifier.namespaceseparator? Please DO NOT send the complete dspace.cfg as it may contain different username/password combinations (e.g. for your database connection, for your doi-namespaces and so on). By the way: did you set identifier.doi.user and identifier.doi.password correctly (again: please DO NOT send the values you put in there).
In [dspace]/config/spring/api/identifier-service.xml you added a bean with the id org.dspace.identifier.doi.DOIConnector (you added it by removing comments). In the configuration of the bean you can set the host and paths the DOIConnector should connect to. Can you please send me those lines? The important part begins with <bean id="org.dspace.identifier.doi.DOIConnector" and ends with </bean> (in my file these are the lines 56 to 64, but it may differ).
Hi Pascal,
Now I have inserted only the doi of my institution in dspace.cfc.
identifier.doi.prefix = 10.xxxx (where the x are replaced with our DOI)
identifier.doi.separetor= unisa-
The username and password are correct in identifier.doi.user and identifier.doi.password.
This is the identifier-service.xml :
<!-- To mint DOIs with DSpace get an agreement with a DOI registration
agency, take a look into dspace.cfg, and remove this comment
-->
<bean id="org.dspace.identifier.DOIIdentifierProvider"
class="org.dspace.identifier.DOIIdentifierProvider"
scope="singleton">
<property name="configurationService"
ref="org.dspace.services.ConfigurationService" />
ref="org.dspace.identifier.doi.DOIConnector" />
</bean>
<!-- The DOIConnector will handle the API calls to your DOI registration
agency for the DOIIdentifierProvider. If your registration agency
tells you to use DataCites API directly you can use the
DataCiteConnector. If your registration agency is not part of DataCite
or provides their own API you have to implement a DOIConnector.
EZID f.e. is part of DataCite but provides their own APIs. The following
DataCiteConnector won't work if EZID is your registration agency.
-->
<!-- Remove this comment to use DataCite API directly as DOIConnector.
-->
<bean id="org.dspace.identifier.doi.DOIConnector"
class="org.dspace.identifier.doi.DataCiteConnector"
scope="singleton">
<property name='DATACITE_SCHEME' value='https'/>
<property name='DATACITE_HOST' value='mds.datacite.org'/>
<property name='DATACITE_DOI_PATH' value='/mds/doi/' />
<property name='DATACITE_METADATA_PATH' value='/mds/metadata/' />
<property name='disseminationCrosswalkName' value="DataCite" />
</bean>
Thanks
Best regards
Massimiliano
Da: Becker, Pascal-Nicolas [mailto:p.be...@tu-berlin.de]
Inviato: venerdì 24 gennaio 2014 11:57
Hi Massimiliano,
that seems alright to me. The only problem left should be, that the DOIs you created with the old, wrong configuration are still in your database. To change this you have to do two things:
1.) Login as administrator into your DSpace instance. Open every Item that was published in your repository with the wrong configuration and click on Edit Item and on Item Metadata. This should be the view, where you can change the metadata of an item. Look for the field dc.identifier.uri. If it begins with http://dx.doi.org/ it contains a DOI. Change it to contain the right DOI (g.e. change “http://dx.doi.org/10.xxx/10.<YOURPREFIX>/unisa-1” to “http://dx.doi.org/10.<YOURPREFIX>/unisa-1”).
2.) There is a table “DOI” in your database. This table contains information for the doi-organiser. It is quite a simple table. In the column “doi” it contains the DOIs you created already. “Repair” these DOIs (remove “10.xxx/” as you have done in step 1). Do you know how to do this with SQL or should I tell you in detail what to do? I’m sorry that there is currently no way to dot in with a command line tool or the webui.
Rerun the doi-organiser command line tool after you’ve repaired the DOIs. Please tell me if everything went right and if the doi-commander can register your DOIs now as expected.
Regards,
Pascal
P.S. If your DSpace instance is just a test environment you could set it up as a clean repository instead of “repairing” the stored DOIs…
Hi Pascal,
We have just now upgraded our DSPACE production server to 4.0.
I have tried to configure DOI even on this but I have this server but when I exectute
/dspace/bin/dspace doi-organiser -u –q
The system give me this error:
Exception: Can't find crosswalk 'DataCite'!
java.lang.RuntimeException: Can't find crosswalk 'DataCite'!
at org.dspace.identifier.doi.DataCiteConnector.prepareXwalk(DataCiteConnector.java:201)
at org.dspace.identifier.doi.DataCiteConnector.reserveDOI(DataCiteConnector.java:469)
at org.dspace.identifier.doi.DataCiteConnector.updateMetadata(DataCiteConnector.java:681)
at org.dspace.identifier.DOIIdentifierProvider.updateMetadataOnline(DOIIdentifierProvider.java:412)
at org.dspace.identifier.doi.DOIOrganiser.update(DOIOrganiser.java:669)
at org.dspace.identifier.doi.DOIOrganiser.runCLI(DOIOrganiser.java:265)
at org.dspace.identifier.doi.DOIOrganiser.main(DOIOrganiser.java:82)
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)
I don’t understand what’s wrong.
This is the configuration of the identifier-service.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Identifier Service Application Interface. Will be autowired with
any Identifier Providers present in Spring context.
-->
<bean id="org.dspace.identifier.IdentifierService"
class="org.dspace.identifier.IdentifierServiceImpl"
autowire="byType"
scope="singleton"/>
<!-- provider for using the versioned handle identifier instead of the default one. -->
<!--<bean id="org.dspace.identifier.HandleIdentifierProvider" class="org.dspace.identifier.VersionedHandleIdentifierProvider"-->
<!--scope="singleton">-->
<!--<property name="configurationService" ref="org.dspace.services.ConfigurationService"/>-->
<!--</bean>-->
<!-- provider to mint and register DOIs with DSpace.
To mint DOIs you need a registration agency. The DOIIdentifierProvider
maintains the doi database table and handling of DSpaceObject. It uses
a DOIConnector that handle all API calls to your DOI registration
agency. Please configure a DOIConnector as well!-->
<!-- To mint DOIs with DSpace get an agreement with a DOI registration
agency, take a look into dspace.cfg, and remove this comment -->
<bean id="org.dspace.identifier.DOIIdentifierProvider"
class="org.dspace.identifier.DOIIdentifierProvider"
scope="singleton">
<property name="configurationService"
ref="org.dspace.services.ConfigurationService" />
<property name="DOIConnector"
ref="org.dspace.identifier.doi.DOIConnector" />
</bean>
<!-- The DOIConnector will handle the API calls to your DOI registration
agency for the DOIIdentifierProvider. If your registration agency
tells you to use DataCites API directly you can use the
DataCiteConnector. If your registration agency is not part of DataCite
or provides their own API you have to implement a DOIConnector.
EZID f.e. is part of DataCite but provides their own APIs. The following
DataCiteConnector won't work if EZID is your registration agency.
-->
<!-- Remove this comment to use DataCite API directly as DOIConnector.-->
<bean id="org.dspace.identifier.doi.DOIConnector"
class="org.dspace.identifier.doi.DataCiteConnector"
scope="singleton">
<property name='DATACITE_SCHEME' value='https'/>
<property name='DATACITE_HOST' value='mds.datacite.org'/>
<property name='DATACITE_DOI_PATH' value='/mds/doi/' />
<property name='DATACITE_METADATA_PATH' value='/mds/metadata/' />
<property name='disseminationCrosswalkName' value="DataCite" />
</bean>
Best regards
Massimiliano
Da: Becker, Pascal-Nicolas [mailto:p.be...@tu-berlin.de]
Inviato: martedì 4 febbraio 2014 17:49