У меня есть приложение EAR, которое разворачивается как бриз в наших средах Jboss, настроенное в соответствии с клиентом (не в виде от клиента).
Приложение содержит XML-файл Spring Beans, который загружается сервлетом CXF
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:sec="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:soap="http://cxf.apache.org/bindings/soap" xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" xmlns:cxf-beans="http://cxf.apache.org/configuration/beans" xmlns:cxf="http://cxf.apache.org/core"
xmlns:cxf-policy="http://cxf.apache.org/policy" xmlns:cxf-soap="http://cxf.apache.org/bindings/soap"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/security https://www.springframework.org/schema/security/spring-security-4.2.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context-4.3.xsd
http://cxf.apache.org/core https://cxf.apache.org/schemas/core.xsd
http://cxf.apache.org/jaxws https://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/bindings/soap https://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/transports/http/configuration https://cxf.apache.org/schemas/configuration/http-conf.xsd
http://cxf.apache.org/policy https://cxf.apache.org/schemas/policy.xsd
http://cxf.apache.org/configuration/security https://cxf.apache.org/schemas/configuration/security.xsd
http://cxf.apache.org/configuration/beans https://cxf.apache.org/schemas/configuration/cxf-beans.xsd
"
profile="DEVELOPMENT_MODE"
>
<jaxws:endpoint id="#ImiServiceSoap" implementor="com.acme.security.saintpaulimi.ServiceSoapMock" address="/ImiServiceSoap">
<jaxws:binding>
<soap:soapBinding style="document" use="literal" version="1.1"/>
</jaxws:binding>
</jaxws:endpoint>
</beans>
Код сервлета (пустой класс аннотированного класса)
@WebServlet(name = "cxfPub",
description = "Public WS /ws",
urlPatterns = "/ws/*",
loadOnStartup = 1,
initParams = {
@WebInitParam(name = "config-location",
value = "classpath*:META-INF/context/servlet-publicWs/*-context.xml")
})
public class PublicWsServlet extends CXFServlet
Независимо от профиля Spring DEVELOPMENT_MODE
, который включает максимизированную конечную точку, приложение не развертывается только на сайте клиента из-за следующей ошибки от Apache Xerces
2018-09-04 16:34:29 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 1021) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./app3: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./app3: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 22 in XML document from VFS resource ["/content/app3.ear/app3.war/WEB-INF/lib/app-web-ext-test-3.8.0.8-BETA.jar/META-INF/context/servlet-publicWs/saintpaulimisec-mocks-context.xml"] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 22; columnNumber: 2; cvc-elt.1.a: Cannot find the declaration of element 'beans'.
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:85) [wildfly-undertow-7.0.4.GA-redhat-2.jar:7.0.4.GA-redhat-2]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_111]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_111]
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 22 in XML document from VFS resource ["/content/app3.ear/app3.war/WEB-INF/lib/app-web-ext-test-3.8.0.8-BETA.jar/META-INF/context/servlet-publicWs/saintpaulimisec-mocks-context.xml"] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 22; columnNumber: 2; cvc-elt.1.a: Cannot find the declaration of element 'beans'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:614)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:515)
at org.apache.cxf.transport.servlet.CXFServlet.createSpringContext(CXFServlet.java:151)
at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:74)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:77)
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117)
at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:78) [wildfly-undertow-7.0.4.GA-redhat-2.jar:7.0.4.GA-redhat-2]
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103)
at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:239)
at io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:133)
at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:527)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:101) [wildfly-undertow-7.0.4.GA-redhat-2.jar:7.0.4.GA-redhat-2]
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82) [wildfly-undertow-7.0.4.GA-redhat-2.jar:7.0.4.GA-redhat-2]
... 6 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 22; columnNumber: 2; cvc-elt.1.a: Cannot find the declaration of element 'beans'.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:201)
at org.apache.xerces.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:132)
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:394)
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:282)
at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2143)
at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:788)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:283)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:733)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1754)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:875)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:798)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:230)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:298)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:76)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:429)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
... 27 more
Я вижу ничего неправильно с документом XML. Я отредактировал имя клиента, но сохранил строки.
Эта проблема, вероятно, связана с Сбой Spring schemaLocation при отсутствии подключения к Интернету , поскольку сеть клиента может быть защищена брандмауэром. Но мы используем Spring 4.3.
Хотя моя проблема может быть связана с брандмауэром, применяются два факта:
- Основной контекст приложения (здесь не отображается) DispatcherServlet работает как шарм. Если я удаляю PublicWsServlet и / или связанные с ним XML-файлы из приложения, он запускается
- Мы используем Spring 4.3. Где еще упоминалось, проблема с автономными серверами заключается в исправлении версии Spring
Вопрос: что-то не так с моим XML-файлом? Что мешает запуску Jboss?