Unidata / thredds

THREDDS Data Server v4.6
https://www.unidata.ucar.edu/software/tds/v4.6/index.html
265 stars 179 forks source link

Turn off validation of wmsConfig #1383

Closed oxelson closed 2 years ago

oxelson commented 2 years ago

Reported issue with Godiva2 interface which fails at the GetMetadata query stage. Tomcat logs with stacktrace below. Failure due to change in WmsDetailedConfig class with the change of the schemas location (www --> schemas domain). Opted to disable validation of the wmsConfig altogether (borrowing method changes made to same class in TDS5).

    17-Dec-2021 12:15:38.818 SEVERE [localhost-startStop-1]
    org.apache.catalina.core.ApplicationContext.log
    StandardWrapper.Throwable
         org.springframework.beans.factory.BeanCreationException: Error
    creating bean with name 'wmsController' defined in ServletContext
    resource [/WEB-INF/wms-servlet.xml]: Invocation of init method
    failed; nested exception is
    thredds.server.wms.config.WmsConfigException:
    org.jdom2.input.JDOMParseException: Error on line 1 of document
    http://www.unidata.ucar.edu/schemas/thredds/dtd/ncwms/wmsConfig.dtd:
    The markup declarations contained or pointed to by the document type
    declaration must be well-formed.
             at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1619)
             at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
             at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
             at
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
             at
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
             at
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
             at
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
             at
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:756)
             at
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
             at
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
             at
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
             at
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
             at
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
             at
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
             at
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
             at
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171)
             at javax.servlet.GenericServlet.init(GenericServlet.java:158)
             at
    org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1144)
             at
    org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
             at
    org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:985)
             at
    org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4875)
             at
    org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189)
             at
    org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
             at
    org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
             at
    org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
             at
    org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
             at
    org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:970)
             at
    org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1840)
             at
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
             at java.util.concurrent.FutureTask.run(FutureTask.java:266)
             at
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
             at
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
             at java.lang.Thread.run(Thread.java:745)

         Caused by: thredds.server.wms.config.WmsConfigException:
    org.jdom2.input.JDOMParseException: Error on line 1 of document
    http://www.unidata.ucar.edu/schemas/thredds/dtd/ncwms/wmsConfig.dtd:
    The markup declarations contained or pointed to by the document type
    declaration must be well-formed.
    *        at
    thredds.server.wms.config.WmsDetailedConfig.fromInputStream(WmsDetailedConfig.java:125)*
             at
    thredds.server.wms.config.WmsDetailedConfig.fromFile(WmsDetailedConfig.java:73)
             at
    thredds.server.wms.ThreddsWmsController.init(ThreddsWmsController.java:121)
             at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
             at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
             at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
             at java.lang.reflect.Method.invoke(Method.java:483)
             at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1748)
             at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1685)
             at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1615)
             ... 32 more
         Caused by: org.jdom2.input.JDOMParseException: Error on line 1
    of document
    http://www.unidata.ucar.edu/schemas/thredds/dtd/ncwms/wmsConfig.dtd:
    The markup declarations contained or pointed to by the document type
    declaration must be well-formed.
             at
    org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:228)
             at
    org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:253)
             at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1091)
             at
    thredds.server.wms.config.WmsDetailedConfig.fromInputStream(WmsDetailedConfig.java:91)
             ... 41 more
         Caused by: org.xml.sax.SAXParseException; systemId:
    http://www.unidata.ucar.edu/schemas/thredds/dtd/ncwms/wmsConfig.dtd;
    lineNumber: 1; columnNumber: 3; The markup declarations contained or
    pointed to by the document type declaration must be well-formed.
             at
    com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
             at
    com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
             at
    org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)
             ... 44 more
haileyajohnson commented 2 years ago

Awesome, thanks @oxelson !