Hi there,
I have been trying to register all the articles of a journal in OJS 2.4.8.0 through the Exportation plugin of CrossRef XML.
First I had an error related to the publication date of the issues and we solved it and now another error is showing up and I do not know exactly where it could be.
We have checked the username and password for CrossRef and it seems that everything is ok…
I have also checked some topics on this forum, but the error seems to be different that ours.
It says the following:
No se pudo realizar el registro. El servidor de registro DOI ha devuelto un error: ‘No response from server.’. (The register could not be done. The server of the DOI register has given an error: No response from server).
I have also tried to export the XML for all the articles with the plugin but it shows a white screen. It seems that it has nothing to do with the amount of articles, because I have also tried only checking one or few articles each time.
The message of “No response from server” indicates that your server is having trouble connecting to the CrossRef server at https://api.crossref.org/deposits .
Some possible considerations:
Is this server behind a proxy? Do you have a proxy configured in config.inc.php?
@a2usmani , please share your specific steps to reproduce the problem, and the error messages you see, both those messages on the screen and any messages from your webserver’s error log.
Are you comfortable modifying the code to get some additional information on why this is failing? In 3.2 and earlier, there are two places where this message appears in the CrossRef plugin:
and
The exact formulation of how to log the additional error information will depend on your specific version of OJS. If you are comfortable adding some debugging code, what version are you using?
I’m not seeing the message “No response from server” in the code for 3.3.0.4, so let’s look at the 3.1.2.4 install to try to debug. Hopefully this will give us some clues about 3.3.0.4 as well.
In /plugins/importexport/crossref/CrossRefExportPlugin.inc.php at line 142:
and at line 316:
If you change the parameter: 'No response from server.'
to 'No response from server.'.curl_error($curlCh)
then the message which appears on screen will contain additional details about why the connection is failing.
For example, after the change, the first line would look like:
$result = __('plugins.importexport.common.register.error.mdsError', array('param' => 'No response from server.'.curl_error($curlCh)));
I changed both the lines in the filer and then tried to deposit one article. It failed and when I clicked failed link. It gave me this message. It says incorrect username and password. But I am using correct credentials which CrossRef gave me and I use it for logging in their portal and meta data manager.
Apache Tomcat/8.0.15 - Error reportH1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}.line {height: 1px; background-color: #525D76; border: none;}
HTTP Status 500 - Request processing failed; nested exception is org.crossref.qs.security.CredentialException: Wrong credentials. Incorrect username or password.
type Exception report
message Request processing failed; nested exception is org.crossref.qs.security.CredentialException: Wrong credentials. Incorrect username or password.
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.crossref.qs.security.CredentialException: Wrong credentials. Incorrect username or password.
Do your username or password have any special characters which might be misinterpreted? For example a quote which might have be converted to a “smart quote” in a copy and paste?
If you are able to access the database directly, does the username and password look correct there?
select setting_name, setting_value from plugin_settings where plugin_name = 'crossrefexportplugin' and setting_name in ('username', 'password');
Reach out to Crossref support to see if they have a reason why a username password which is working for the Web UI is failing for API calls
Copy the site to a different service provider and test the Crossref connection from there (unless your three installations already span different service providers).
Debug the API call at the HTTP level, to confirm the credentials are being sent as expected.
The two API endpoints which OJS uses are: https://api.crossref.org/v2/deposits
and https://api.crossref.org/servlet/submissionDownload
If that is not enough, this essentially pushes us toward the fourth option, “Debug the API call at the HTTP level”, which will be quite complex.
This stackoverflow article describes capturing the requested HTTP calls via PHP cURL, using CURLOPT_VERBOSE and pointing CURLOPT_STDERR to a file handle. You should only approach this if very comfortable modifying the code.