[
https://issues.apache.org/jira/browse/OPENJPA-2791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16872442#comment-16872442
]
Francesco Chicchiriccò commented on OPENJPA-2791:
-------------------------------------------------
{quote}It doesn't work here because the root of the problem is that the
SAXParser cannot handle the HTTPS protocol (either directly or by redirection)
{quote}
The problem seems to be more following redirects rather than https; if you put
[https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd]
rather than
[https://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd]
it should work - at least, it works on some simple spike I've made locally:
{code}
SchemaFactory schemaFactory =
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(
new
URL("https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd"));
SAXSource source = new SAXSource(new
InputSource(App.class.getResourceAsStream("/persistence.xml")));
Validator validator = schema.newValidator();
validator.validate(source);
{code}
works fine, while putting
{code}
https://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd
{code}
raises the "premature end of file" exception as reported above.
> Parsing persistence.xml throws premature end of file error
> ----------------------------------------------------------
>
> Key: OPENJPA-2791
> URL: https://issues.apache.org/jira/browse/OPENJPA-2791
> Project: OpenJPA
> Issue Type: Bug
> Components: build / infrastructure, jpa
> Affects Versions: 2.4.3
> Environment: Linux Ubuntu 18.04
> Reporter: Robert F. Peake
> Priority: Major
> Labels: build
>
> XMLMetaDataParser in org.apache.openjpa.lib.meta uses the SaxParser to read
> persistence.xml. Just within the last few days, it has begun to throw this
> error:
> {quote}org.xml.sax.SAXException:
> [file:/home/robert/git/sccdata/target/classes/META-INF/persistence.xml|file:///home/robert/git/sccdata/target/classes/META-INF/persistence.xml]
> [Location: Line: 5, C: 64]: org.xml.sax.SAXParseException; systemId:
> [http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd]; lineNumber: 1;
> columnNumber: 1; Premature end of file.
> {quote}
> Resorting to XML Copy Editor to validate the schema shows the error actually
> involved: Fatal Error at line 0, column 0: unsupported protocol in URL. It
> seems that Oracle's web site has switched from HTTP to HTTPS, which is a
> protocol that parser cannot handle, as explained in this post:
> {color:#000000}[article|[https://knowledgebase.progress.com/articles/Article/Unsupported-protocol-in-URL-reading-XML-from-a-URI].]{color}
> {color:#000000} {color}
> {color:#000000}The problem has been reported elsewhere [Stack
> Overflow|https://stackoverflow.com/questions/56728487/org-xml-sax-saxparseexceptionpublicid-http-xmlns-jcp-org-xml-ns-persistence-p/56741356#56741356].{color}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)