Spring project startup error
The error log is as follows:
Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 1 in XML document from URL [jar:file:webapps/ROOT/WEB-INF/lib/xxx-biz-1.0.jar!/xxx/sponsor-group-pipeline.xml] is invalid; nested exception is org.xml.sax.SAXParseException; systemId: http://www.xxx.com/schema/hipac/pipeline.xsd; lineNumber: 1; columnNumber: 50; White spaces are required between publicId and systemId.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399) ~[spring-beans-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336) ~[spring-beans-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) ~[spring-beans-4.1.9.RELEASE.jar:4.1.9.RELEASE]
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:245) ~[spring-beans-4.1.9.RELEASE.jar:4.1.9.RELEASE]
... 54 common frames omitted
Caused by: org.xml.sax.SAXParseException: White spaces are required between publicId and systemId.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) ~[na:1.8.0_45]
Google has been saying for a long time that there should be a space between systemid and PublicID defined by XML header, which is the content of this lump
<?xml version="1.0" encoding="UTF-8"?&>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hipac="http://www.xxx.com/schema/hipac"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.xxx.com/schema/hipac http://www.xxx.com/schema/hipac/pipeline.xsd"&>
It’s the red part above. You can see that there is no problem with my configuration
What’s the problem?At the beginning, I always suspected the jar package conflict, but after a long time of investigation, compared with many jar versions of other normal applications, no problem was found
Since this scheme is defined by myself, there is a corresponding configuration resolution in spring, that is spring.handlers and spring.schemas Two documents. Let’s look at the contents of these two documents
spring.handlers
http\://www.xxx.com/schema/hipac=com.xxx.engine.choreography.pipeline.namespace.EngineNamespaceHandler
spring.schemas
http\://www.xxx.com/schema/hipac/pipeline.xsd=com/xxx/engine/choreography/pipeline/xsd/pipeline.xsd
One of these two files specifies the path of XSD, and the other is the parsing class of schemas. It is suspected that there is a problem with the loading of these two files
So I searched these two files in the access application code, and found that there are actually these two configuration files in the application, and the contents are similar (only the values are different, and the corresponding class and XSD can’t be found in the code). I’m very suspicious here, and the probability is the problem.
Next, delete these two files immediately and deploy them again. OK, it’s successful.
After this problem, let me remember that another application had this situation when it was just connected, but I forgot how to solve it at that time. In retrospect, it was actually caused by the wrong class path or XSD path in the configuration file at that time.
However, the prompt for spring startup is also a pitfall. It’s too misleading. I always think it’s a problem with the referenced configuration file, which wastes a lot of time. I’ll take a good look at spring’s parsing of sechemas later.
Similar Posts:
- The prefix “mvc” for element “mvc:annotation-driven” is not bound Error
- Cannot find the declaration of element ‘beans’
- [Solved] JAVA Error: org.springframework.beans.factory.BeanCreationException
- [Solved] Caused by: org.xml.sax.SAXParseException: Premature end of file.
- [Solved] No qualifying bean of type ‘org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder’ available:
- [Solved] Springboot Use Redis Error: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘redisTemplate’ defined in class path resource
- [Solved] java.lang.IllegalStateException: Failed to introspect Class xxxx
- Sun.io.malformedinput exception IBM WebSphere middleware exception
- Springcloud: gateway module startup error
- Spring cloud consumer feign injection error [How to Solve]