Aki Yoshida created CXF-4293:
--------------------------------
Summary: Some WS-RM scenarios may not run when there is no
internet connection available
Key: CXF-4293
URL: https://issues.apache.org/jira/browse/CXF-4293
Project: CXF
Issue Type: Bug
Components: WS-* Components
Affects Versions: 2.5.3
Reporter: Aki Yoshida
Assignee: Aki Yoshida
Some ws-rm scenarios such as those in systests/ws-rm with no RMAssertion
reference (e.g., persistent.xml) are failing when there is no internet
connection. The exception is shown as:
java.lang.RuntimeException:
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 75
in XML document from class path resource
[org/apache/cxf/systest/ws/rm/persistent.xml] is invalid; nested exception is
org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name
'wsrmp:RMAssertion' to a(n) 'element declaration' component.
at
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:124)
at
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:97)
at
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:69)
at
org.apache.cxf.systest.ws.rm.ClientPersistenceTest$Server.run(ClientPersistenceTest.java:80)
at
org.apache.cxf.testutil.common.AbstractTestServerBase.start(AbstractTestServerBase.java:68)
at
org.apache.cxf.systest.ws.rm.ClientPersistenceTest$Server.main(ClientPersistenceTest.java:106)
Caused by:
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 75
in XML document from class path resource
[org/apache/cxf/systest/ws/rm/persistent.xml] is invalid; nested exception is
org.xml.sax.SAXParseException:src-resolve: Cannot resolve the name
'wsrmp:RMAssertion' to a(n) 'element declaration' component.
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
at
org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.doLoadBeanDefinitions(ControlledValidationXmlBeanDefinitionReader.java:115)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at
org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.internalLoadBeanDefinitions(ControlledValidationXmlBeanDefinitionReader.java:154)
at
org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.access$0(ControlledValidationXmlBeanDefinitionReader.java:153)
at
org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader$1.run(ControlledValidationXmlBeanDefinitionReader.java:141)
at
org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader$1.run(ControlledValidationXmlBeanDefinitionReader.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.loadBeanDefinitions(ControlledValidationXmlBeanDefinitionReader.java:139)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at
org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:122)
at
org.apache.cxf.bus.spring.BusApplicationContext.loadBeanDefinitions(BusApplicationContext.java:309)
at
org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at
org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397)
at
org.apache.cxf.bus.spring.BusApplicationContext$1.run(BusApplicationContext.java:101)
at
org.apache.cxf.bus.spring.BusApplicationContext$1.run(BusApplicationContext.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:99)
at
org.apache.cxf.bus.spring.SpringBusFactory.createApplicationContext(SpringBusFactory.java:130)
at
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:121)
... 5 more
Caused by: org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name
'wsrmp:RMAssertion' to a(n) 'element declaration' component.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:
195)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:2537)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:2528)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1396)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseLocal(XSDElementTraverser.java:160)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseLocalElements(XSDHandler.java:2049)
at
com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:582)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:552)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:2437)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1782)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:705)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)
at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at
org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
at
org.apache.cxf.bus.spring.TunedDocumentLoader.loadDocument(TunedDocumentLoader.java:116)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
... 26 more
The import statement in wsrm-manager.xsd currently imports wsrm-policy.xsd at
the same relative path as in
<xs:import namespace="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
schemaLocation="wsrm-policy.xsd"/>
which implies wsrm-policy.xsd resides in the same path as in wsrm-manager.xsd.
However, this will interfere with the schema catalog entry to look up its local
copy
http\://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd=schemas/configuration/wsrm-policy.xsd
As wsrm-policy.xsd is a public schema, we should let the catalog file simply
resolve it to the local copy (so that it will also work without the internet
connection).
That means, we should make wsrm-manager.xsd import wsrm-policy.xsd using its
public location that matches the catalog file, as
<xs:import namespace="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
schemaLocation="http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd"/>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira