Jeff created CXF-8622: ------------------------- Summary: Issue with serving schema files over http Key: CXF-8622 URL: https://issues.apache.org/jira/browse/CXF-8622 Project: CXF Issue Type: Bug Reporter: Jeff
Hello, We use spring framework libraries and they're utilizing sites on apache such as: [http://cxf.apache.org/schemas/jaxrs.xsd] The error we currently get is the following: {code} 2021-12-03 16:54:51,760 ERROR - Context initialization failed org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 1 in XML document from ServletContext resource [/WEB-INF/application-context.xml] is invalid; nested exception is org.xml.sax.SAXParseException; systemId: http://cxf.apache.org/schemas/jaxrs.xsd; lineNumber: 1; columnNumber: 1; Premature end of file. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336) {code} We believe this is due to the fact that http isn't serving the schema file. We had this working yesterday so believe that something may have changed recently around this. A similar bug that we found I believe is here: https://issues.apache.org/jira/browse/CAMEL-13890 We tried internally referencing the https location. e.g. [https://cxf.apache.org/schemas/jaxrs.xsd] but then we get a schema doesn't match error. {code} Caused by: org.xml.sax.SAXParseException; systemId: https://cxf.apache.org/schemas/jaxrs.xsd; lineNumber: 28; columnNumber: 40; TargetNamespace.1: Expecting namespace 'https://cxf.apache.org/jaxrs', but the target namespace of the schema document is 'http://cxf.apache.org/jaxrs'. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396) {code} Also when we do curl here vs doing curl in https the body is different as expected: {code:java} platform % curl -vvv http://cxf.apache.org/schemas/jaxrs.xsd * Trying 151.101.2.132... * TCP_NODELAY set * Connected to cxf.apache.org (151.101.2.132) port 80 (#0) > GET /schemas/jaxrs.xsd HTTP/1.1 > Host: cxf.apache.org > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 301 Moved Permanently < Server: Varnish < Retry-After: 0 < Location: https://cxf.apache.org/schemas/jaxrs.xsd < Content-Length: 0 < Accept-Ranges: bytes < Date: Sat, 04 Dec 2021 01:28:38 GMT < Via: 1.1 varnish < Connection: close < X-Served-By: cache-bos4646-BOS < X-Cache: HIT < X-Cache-Hits: 0 < X-Timer: S1638581319.719643,VS0,VE0 < Strict-Transport-Security: max-age=300 < * Closing connection 0{code} Here's an example of the application-context.xml file that we have where springframework.org files serve fine over http {code} <beans xmlns:context="http://www.springframework.org/schema/context" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> {code} Any help around this is greatly appreciated, thanks! -- This message was sent by Atlassian Jira (v8.20.1#820001)