Я пытаюсь создать веб-сервис SOAP из файла WSDL. Поэтому я сгенерировал классы Java, используя cxf-codegen-plugin
. Теперь есть общий XSD, который используется многими проектами, поэтому я оставил его в одном из них и указал относительный путь к нему в файлах WSDL и связанных схемах.
Я смог сгенерировать классы просто отлично, но когда я развертываю его на Tomcat 9, я получаю сообщение об ошибке:
06-Mar-2020 12:55:21.750 SEVERE [Catalina-utility-2] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dacService': Invocation of init method failed; nested exception is javax.xml.ws.WebServiceException: java.lang.IllegalArgumentException: The resource path [/../../../../../../app-common/src/main/resources/xsdFiles/CommonHeaderSchemaV3.xsd] has been normalized to [null] which is not valid
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
.
.
.
.
Импорт выглядит примерно так:
<xsd:import namespace="http://cbo.gtt.com/commonschema/v3" schemaLocation="../../../../../../app-common/src/main/resources/xsdFiles/CommonSchemaV3.xsd"/>
Теперь, после небольшого поиска в Google Я вижу, что в этом нет ничего нового. Но большинство решений где-то было связано с кодом. Но мое - это то, что приходит изнутри весны. Так что действительно вне моего контроля. Я попытался добавить a /
в начале пути, но это не помогло, кроме того, это также приводит к сбою плагина cxf codegen. Я также попытался добавить org.apache.catalina.core.
ApplicationContext.GET_RESOURCE_REQUIRE_SLASH
как true в catalina.properties
, но это также не помогло. Любая помощь в этом будет оценена. Заранее спасибо.