Call to a member function saveXml()

I wouldn’t have an immediate guess of what to look for directly within the database.

If you are comfortable debugging PHP, you can use step-through debugging or error_log() statements to evaluate the variables along the call stack described in the error message, especially the XML @jnugent mentions.

If you are not familiar with debugging PHP, export the objects one-by-one in the interface until you encounter the error. Then, examine whichever object created the error directly within the submission system. Does anything stand out?

@ctgraham

i’m not sure that i’m good debugger.

i have enable in config.inc.php
show_stacktrace = On
display_errors = On

i tryied from 1-st step, - creating and publishing issue.

i can create new issue, but when i try to publish it i receive:
[27-Mar-2020 18:52:32 Europe/Berlin] ojs2: Unrecognized DAO PublishedArticleDAO!

but when i change in DB setting “published” to “1” it became published.

I have create submission. it’s status is “Scheduled” but not “published”
my submission haven’t “locale” setting in “submission” table. i need to set it manualy. it has “null” before i change. also i change “status” from 5 to 3. and finaly it became published.

screenshot for null setting in locale: image

Hi all,

There’s currently an issue in the ORCID plugin that interferes with publishing an issue. See: [OJS] ORCID Profile Plugin prevents article publication · Issue #5572 · pkp/pkp-lib · GitHub

For the moment, I’d recommend disabling that plugin before publishing an issue (and re-enabling afterwards if you like). There will be an updated version of the plugin available soon in the plugin gallery.

Regards,
Alec Smecher
Public Knowledge Project Team

1 Like

already disabled. issue can be published. but i think that smth in DB is missed for submission, and that’s the problem of deposition to OJS.

unfortunatly nothing helped.

but i catch popup message for depositing to doaj

Deposit was not successful! The DOAJ API returned an error: ‘1 - {“status”: “bad_request”, “error”: “Supplied data was not valid JSON (ref: 733e2f80-705d-11ea-a91b-6ac132d54a90)”}’.

and when i try to export XML
Stack trace:
#0 D:\xampp2\htdocs\classes\plugins\PubObjectsExportPlugin.inc.php(195): PubObjectsExportPlugin->exportXML(Array, ‘article=>doaj-x…’, Object(Journal), true)
#1 D:\xampp2\htdocs\plugins\importexport\doaj\DOAJExportPlugin.inc.php(196): PubObjectsExportPlugin->executeExportAction(Object(Request), Array, ‘article=>doaj-x…’, ‘exportSubmissio…’, ‘articles’, true)
#2 D:\xampp2\htdocs\classes\plugins\PubObjectsExportPlugin.inc.php(176): DOAJExportPlugin->executeExportAction(Object(Request), Array, ‘article=>doaj-x…’, ‘exportSubmissio…’, ‘articles’, true)
#3 D:\xampp2\htdocs\plugins\importexport\doaj\DOAJExportPlugin.inc.php(52): PubObjectsExportPlugin->display(Array, Object(Request))
#4 D:\xampp2\htdocs\lib\pkp\pages\management\PKPToolsHandler.inc.php(104): DOAJExportPlugin->display(Array, Object(Request))
#5 D:\xampp2\htdocs\lib\pkp\classes\core\PKPRouter.inc.php(3 in D:\xampp2\htdocs\classes\plugins\PubObjectsExportPlugin.inc.php on line 372

and for 3.1.2.4 all works fine

Hi @redukr,

There should be a line above “Stack trace:” that shows the actual error message.

Regards,
Alec Smecher
Public Knowledge Project Team

@asmecher

[27-Mar-2020 20:01:59 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function saveXml() on null in D:\xampp2\htdocs\classes\plugins\PubObjectsExportPlugin.inc.php:372

save as in 1-st post :frowning:

i know that my hands grow from my ass… but i will lost my mind :frowning:

1 Like

Hi @redukr,

i know that my hands grow from my ass

That is a beautiful phrase and I will borrow it :slight_smile:

What do you get for the following SQL query?

 select * from filter_groups where symbolic like 'article=>crossref-xml';

Regards,
Alec Smecher
Public Knowledge Project Team

@asmecher
6 article=>crossref-xml plugins.importexport.crossref.displayName plugins.importexport.crossref.description class::classes.article.Article[] xml::schema(https://www.crossref.org/schemas/crossref4.3.6.xsd)

image

and a minute of humor: Hands-ass deity
image

Hi @redukr,

I think that reference to Article is the problem – it changed starting with OJS 3.2.0 but it appears to not have been updated. Could you try the following two queries?

UPDATE filter_groups SET input_type = 'class::classes.submission.Submission[]' WHERE input_type = 'class::classes.article.Article[]';
UPDATE filter_groups SET output_type = 'class::classes.submission.Submission[]' WHERE output_type = 'class::classes.article.Article[]'

Please confirm whether that works and I’ll get it added to GitHub for the next release.

Regards,
Alec Smecher
Public Knowledge Project Team

UPDATE filter_groups SET input_type = ‘class::classes.submission.Submission[]’ WHERE input_type = ‘class::classes.article.Article[]’

Affected rows: 5
Time: 0,037s

UPDATE filter_groups SET output_type = ‘class::classes.submission.Submission[]’ WHERE output_type = ‘class::classes.article.Article[]’

Affected rows: 1
Time: 0,003s

YOHOOOOOOOO

For crossref

  1. Registration successful!
  2. downloading of XML successful to

for doaj:
Deposit was not successful! The DOAJ API returned an error: ‘1 - {“status”: “bad_request”, “error”: “Supplied data was not valid JSON (ref: bc1caeaa-7076-11ea-a926-6ac132d54a90)”}’.

and when i try to download xml:

    Warning: DOMDocument::schemaValidate(): Invalid Schema in D:\xampp2\htdocs\lib\pkp\classes\xslt\XMLTypeDescription.inc.php on line 134
Validation errors:
element decl. 'language', attribute 'type': The QName value '{http://www.doaj.org/schemas/iso_639-2b/1.0}LanguageCodeType' does not resolve to a(n) type definition.

attribute decl. 'language', attribute 'type': The QName value '{http://www.doaj.org/schemas/iso_639-2b/1.0}LanguageCodeType' does not resolve to a(n) simple type definition.

attribute decl. 'language', attribute 'type': The QName value '{http://www.doaj.org/schemas/iso_639-2b/1.0}LanguageCodeType' does not resolve to a(n) simple type definition.

attribute decl. 'language', attribute 'type': The QName value '{http://www.doaj.org/schemas/iso_639-2b/1.0}LanguageCodeType' does not resolve to a(n) simple type definition.

Invalid XML:
<?xml version="1.0" encoding="utf-8"?>
<records xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://doaj.org/static/doaj/doajArticles.xsd">
  <record>
    <language>eng</language>
    <publisher>Ukrainian Association of Researchers of Religion</publisher>
    <journalTitle>Українське Релігієзнавство</journalTitle>
    <issn>2306-3548</issn>
    <eissn>2617-9792</eissn>
    <publicationDate>2020-03-26</publicationDate>
    <issue>90</issue>
    <doi>10.32420/2020.90.2095</doi>
    <publisherRecordId>2049</publisherRecordId>
    <title language="eng">3.2.1-1 testing ojs</title>
    <title language="rus">3.2.1-1 testing ojs</title>
    <title language="ukr">3.2.1-1 testing ojs</title>
    <authors>
      <author>
        <name>Georgii  Fylypovych</name>
      </author>
    </authors>
    <abstract language="eng">
3.2.1-1 testing ojs
</abstract>
    <abstract language="rus">
3.2.1-1 testing ojs
</abstract>
    <abstract language="ukr">
3.2.1-1 testing ojs
</abstract>
    <fullTextUrl format="html">http://192.168.1.59/index.php/uars/article/view/2095</fullTextUrl>
    <keywords language="eng">
      <keyword>3.2.1-1 testing ojs</keyword>
    </keywords>
    <keywords language="rus">
      <keyword>3.2.1-1 testing ojs</keyword>
    </keywords>
    <keywords language="ukr">
      <keyword>3.2.1-1 testing ojs</keyword>
    </keywords>
  </record>
</records>
Could not convert selected objects.
Stack Trace:
File: D:\xampp2\htdocs\classes\plugins\PubObjectsExportPlugin.inc.php line 377
Function: ImportExportPlugin->displayXMLValidationErrors(Array(4), "<?xml version="1.0" encoding="utf-8"?> <records xmlns:xsi="http:...")

File: D:\xampp2\htdocs\classes\plugins\PubObjectsExportPlugin.inc.php line 195
Function: PubObjectsExportPlugin->exportXML(Array(1), "article=>doaj-xml", Object(Journal), False)

File: D:\xampp2\htdocs\plugins\importexport\doaj\DOAJExportPlugin.inc.php line 196
Function: PubObjectsExportPlugin->executeExportAction(Object(Request), Array(1), "article=>doaj-xml", "exportSubmissions-tab", "articles", False)

File: D:\xampp2\htdocs\classes\plugins\PubObjectsExportPlugin.inc.php line 176
Function: DOAJExportPlugin->executeExportAction(Object(Request), Array(1), "article=>doaj-xml", "exportSubmissions-tab", "articles", False)

File: D:\xampp2\htdocs\plugins\importexport\doaj\DOAJExportPlugin.inc.php line 52
Function: PubObjectsExportPlugin->display(Array(0), Object(Request))

File: D:\xampp2\htdocs\lib\pkp\pages\management\PKPToolsHandler.inc.php line 104
Function: DOAJExportPlugin->display(Array(1), Object(Request))

File: D:\xampp2\htdocs\lib\pkp\classes\core\PKPRouter.inc.php line 391
Function: PKPToolsHandler->importexport(Array(1), Object(Request))

File: D:\xampp2\htdocs\lib\pkp\classes\core\PKPPageRouter.inc.php line 231
Function: PKPRouter->_authorizeInitializeAndCallRequest(Array(2), Object(Request), Array(3), False)

File: D:\xampp2\htdocs\lib\pkp\classes\core\Dispatcher.inc.php line 143
Function: PKPPageRouter->route(Object(Request))

File: D:\xampp2\htdocs\lib\pkp\classes\core\PKPApplication.inc.php line 278
Function: Dispatcher->dispatch(Object(Request))

File: D:\xampp2\htdocs\index.php line 68
Function: PKPApplication->execute()

Hi @redukr,

Great! I’ve filed and fixed the CrossRef issue here:

For the DOAJ issue, I think you’re encountering a firewall problem or something similar that’s preventing OJS from contacting the DOAJ website for part of the schema description. See this thread: OJS3 XML doc error

Regards,
Alec Smecher
Public Knowledge Project Team

1 Like

@asmecher why doaj export works fine for 3.1.2-4 ?

Hi @redukr,

It may be that there are two problems here:

  • One with the DOAJ deposit process (Supplied data was not valid JSON), which I haven’t looked at yet, and
  • Another with the export XML (the invalid XML problem).

Can you confirm that you’re able to successfully perform both processes in OJS 3.1.2? Is your server behind a proxy, and if so, is it configured in your config.inc.php configuration file?

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @redukr,

Ah, I’ve found the problem – DOAJ appears to have bumped one of the schema files on its server to a newer, incompatible version. I’ve filed this at DOAJ XML exports fail to validate · Issue #5682 · pkp/pkp-lib · GitHub and will look into a fix.

Regards,
Alec Smecher
Public Knowledge Project Team

@asmecher my real website uars.info has frontend(nginx) which transfer all requests to another VM(with apache).
no additional configs in config.inc.php not enabled. version of OJS 3.1.2-4
and i can deposit data. i discovered that i can’t download xml because of the same error
i have install xampp at my work computer, and take there copy of current 3.1.2-4 site updated it to 3.2.0-1.

when i want to test deposition of metadata i change in my frontend IP.
location / {
proxy_pass https://192.168.1.90:443/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
}
}

Validation errors:
element decl. 'language', attribute 'type': The QName value '{http://www.doaj.org/schemas/iso_639-2b/1.0}LanguageCodeType' does not resolve to a(n) type definition.

attribute decl. 'language', attribute 'type': The QName value '{http://www.doaj.org/schemas/iso_639-2b/1.0}LanguageCodeType' does not resolve to a(n) simple type definition.

attribute decl. 'language', attribute 'type': The QName value '{http://www.doaj.org/schemas/iso_639-2b/1.0}LanguageCodeType' does not resolve to a(n) simple type definition.

attribute decl. 'language', attribute 'type': The QName value '{http://www.doaj.org/schemas/iso_639-2b/1.0}LanguageCodeType' does not resolve to a(n) simple type definition.

Invalid XML:
<?xml version="1.0" encoding="utf-8"?>
<records xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://doaj.org/static/doaj/doajArticles.xsd">
  <record>
    <language>ukr</language>
    <publisher>Ukrainian Association of Researchers of Religion</publisher>
    <journalTitle>Ukrainian Religious Studies</journalTitle>
    <issn>2306-3548</issn>
    <eissn>2617-9792</eissn>
    <publicationDate>2019-12-10</publicationDate>
    <issue>89</issue>
    <startPage>97</startPage>
    <endPage>101</endPage>
    <doi>10.32420/2019.89.1794</doi>
    <publisherRecordId>1794</publisherRecordId>
    <title language="ukr">Автори</title>
    <title language="eng">Authors of the journal</title>
    <authors>
      <author>
        <name>Editorial board  of the Journal </name>
      </author>
    </authors>
    <abstract language="ukr">
Автори
</abstract>
    <abstract language="eng">
Authors of the journal
</abstract>
    <fullTextUrl format="html">https://uars.info/index.php/uars/article/view/1794</fullTextUrl>
    <keywords language="ukr"/>
    <keywords language="eng"/>
    <keywords language="rus"/>
  </record>
</records>
Could not convert selected objects.

@asmecher i can confirm, that in 3.1.2-4 i can download xml. but only if i remove checkbox about validation
image

i forgot that i have change default DOAJ plugin code to have ability to deposit only english metadata instead of depositing metadata equal to submission language.

so in 3.2.0-1 i can’t deposit\download with\without checkbox
and in 3.1.2.-4 i can deposit\download without checkbox

Hi @redukr,

Did you see my response above? Call to a member function saveXml() - #20 by asmecher

Regards,
Alec Smecher
Public Knowledge Project Team

@asmecher i haven’t seen your reply. Thank’s a lot for your work!!!

1 Like

Thanks a lot for your help! Merci bien!