You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Ilkka Virolainen <Il...@bitwise.fi> on 2018/03/06 07:39:29 UTC

Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet

Hello,

After a recent change allowing splitting up the broker configuration across multiple files, starting Artemis fails when the server running broker has no Internet access. xml:specialAttrs references in artemis-configuration.xsd fail because the schema location http://www.w3.org/2005/08/xml.xsd is inaccessible. To reproduce, pull the latest master for 2.5.0-SNAPSHOT, block www.w3.org and try to run a broker. Is there a workaround for this? Note that it's not enough to just add the required XSD to ARTEMIS_HOME\schema and update the schemaLocation since the referenced schema files are inside the artemis-server.jar. The stack trace for the error is as follows.

Best regards,
- Ilkka

     _        _               _
    / \  ____| |_  ___ __  __(_) _____
   / _ \|  _ \ __|/ _ \  \/  | |/  __/
  / ___ \ | \/ |_/  __/ |\/| | |\___ \
/_/   \_\|   \__\____|_|  |_|_|/___ /
Apache ActiveMQ Artemis 2.5.0-SNAPSHOT


Exception in thread "main" org.xml.sax.SAXParseException; systemId: jar:file:/C:/temp/artemis-master/apache-artemis-2.5.0-SNAPSHOT/lib/artemis-server-2.5.0-SNAPSHOT.jar!/schema/artemis-configuration.xsd; lineNumber: 1083; columnNumber: 51; src-resolve: Cannot resolve the name 'xml:specialAttrs' to a(n) 'attribute group' component.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4156)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4139)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1682)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeGroupTraverser.traverseLocal(XSDAttributeGroupTraverser.java:80)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(XSDAbstractTraverser.java:643)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(XSDComplexTypeTraverser.java:1123)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(XSDComplexTypeTraverser.java:335)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(XSDComplexTypeTraverser.java:191)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseGlobalDecl(XSDHandler.java:1892)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1780)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(XSDElementTraverser.java:405)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseGlobal(XSDElementTraverser.java:242)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.java:1437)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:633)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:613)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:572)
        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:538)
        at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:255)
        at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
        at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:670)
        at org.apache.activemq.artemis.utils.XMLUtil.validate(XMLUtil.java:326)
        at org.apache.activemq.artemis.core.config.FileDeploymentManager.readConfiguration(FileDeploymentManager.java:85)
        at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:68)
        at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:82)
        at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:149)
        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:97)
        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:124)
        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:498)
        at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
        at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)

RE: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet

Posted by Ilkka Virolainen <Il...@bitwise.fi>.
I see that this is now resolved. Thank you!

-----Original Message-----
From: Michael André Pearce [mailto:michael.andre.pearce@me.com] 
Sent: 6. maaliskuuta 2018 12:56
To: users@activemq.apache.org
Subject: Re: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet

This is just now in PR

https://github.com/apache/activemq-artemis/pull/1933



> On 6 Mar 2018, at 09:39, Ilkka Virolainen <Il...@bitwise.fi> wrote:
> 
> Sounds good, thanks!
> 
> Here's the JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1731
> 
> Best regards,
> - Ilkka
> 
> -----Original Message-----
> From: Michael André Pearce [mailto:michael.andre.pearce@me.com] 
> Sent: 6. maaliskuuta 2018 10:51
> To: users@activemq.apache.org
> Subject: Re: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet
> 
> We can pull in this schema into the build so it’s included.
> 
> Will try look at this today.
> 
> Can you raise a JIRA?
> 
> Sent from my iPhone
> 
>> On 6 Mar 2018, at 07:39, Ilkka Virolainen <Il...@bitwise.fi> wrote:
>> 
>> Hello,
>> 
>> After a recent change allowing splitting up the broker configuration across multiple files, starting Artemis fails when the server running broker has no Internet access. xml:specialAttrs references in artemis-configuration.xsd fail because the schema location http://www.w3.org/2005/08/xml.xsd is inaccessible. To reproduce, pull the latest master for 2.5.0-SNAPSHOT, block www.w3.org and try to run a broker. Is there a workaround for this? Note that it's not enough to just add the required XSD to ARTEMIS_HOME\schema and update the schemaLocation since the referenced schema files are inside the artemis-server.jar. The stack trace for the error is as follows.
>> 
>> Best regards,
>> - Ilkka
>> 
>>    _        _               _
>>   / \  ____| |_  ___ __  __(_) _____
>>  / _ \|  _ \ __|/ _ \  \/  | |/  __/
>> / ___ \ | \/ |_/  __/ |\/| | |\___ \
>> /_/   \_\|   \__\____|_|  |_|_|/___ /
>> Apache ActiveMQ Artemis 2.5.0-SNAPSHOT
>> 
>> 
>> Exception in thread "main" org.xml.sax.SAXParseException; systemId: jar:file:/C:/temp/artemis-master/apache-artemis-2.5.0-SNAPSHOT/lib/artemis-server-2.5.0-SNAPSHOT.jar!/schema/artemis-configuration.xsd; lineNumber: 1083; columnNumber: 51; src-resolve: Cannot resolve the name 'xml:specialAttrs' to a(n) 'attribute group' component.
>>       at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
>>       at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
>>       at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4156)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4139)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1682)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeGroupTraverser.traverseLocal(XSDAttributeGroupTraverser.java:80)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(XSDAbstractTraverser.java:643)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(XSDComplexTypeTraverser.java:1123)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(XSDComplexTypeTraverser.java:335)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(XSDComplexTypeTraverser.java:191)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseGlobalDecl(XSDHandler.java:1892)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1780)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(XSDElementTraverser.java:405)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseGlobal(XSDElementTraverser.java:242)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.java:1437)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:633)
>>       at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:613)
>>       at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:572)
>>       at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:538)
>>       at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:255)
>>       at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
>>       at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:670)
>>       at org.apache.activemq.artemis.utils.XMLUtil.validate(XMLUtil.java:326)
>>       at org.apache.activemq.artemis.core.config.FileDeploymentManager.readConfiguration(FileDeploymentManager.java:85)
>>       at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:68)
>>       at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:82)
>>       at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:149)
>>       at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:97)
>>       at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:124)
>>       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:498)
>>       at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
>>       at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)

Re: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet

Posted by "Oliver B. Fischer" <o....@swe-blog.net>.
I wouldn't change the schemaLocation directly as it is actual a bad 
practice. Dependending on the XML processor catalog files should be 
used. In most cases the API of the XML processor allows you to handle 
such things in a cleaner way.

Oliver

Am 06.03.18 um 11:55 schrieb Michael André Pearce:
> This is just now in PR
> 
> https://github.com/apache/activemq-artemis/pull/1933
> 
> 
> 
>> On 6 Mar 2018, at 09:39, Ilkka Virolainen <Il...@bitwise.fi> wrote:
>>
>> Sounds good, thanks!
>>
>> Here's the JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1731
>>
>> Best regards,
>> - Ilkka
>>
>> -----Original Message-----
>> From: Michael André Pearce [mailto:michael.andre.pearce@me.com]
>> Sent: 6. maaliskuuta 2018 10:51
>> To: users@activemq.apache.org
>> Subject: Re: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet
>>
>> We can pull in this schema into the build so it’s included.
>>
>> Will try look at this today.
>>
>> Can you raise a JIRA?
>>
>> Sent from my iPhone
>>
> 

Re: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet

Posted by Michael André Pearce <mi...@me.com>.
This is just now in PR

https://github.com/apache/activemq-artemis/pull/1933



> On 6 Mar 2018, at 09:39, Ilkka Virolainen <Il...@bitwise.fi> wrote:
> 
> Sounds good, thanks!
> 
> Here's the JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1731
> 
> Best regards,
> - Ilkka
> 
> -----Original Message-----
> From: Michael André Pearce [mailto:michael.andre.pearce@me.com] 
> Sent: 6. maaliskuuta 2018 10:51
> To: users@activemq.apache.org
> Subject: Re: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet
> 
> We can pull in this schema into the build so it’s included.
> 
> Will try look at this today.
> 
> Can you raise a JIRA?
> 
> Sent from my iPhone
> 
>> On 6 Mar 2018, at 07:39, Ilkka Virolainen <Il...@bitwise.fi> wrote:
>> 
>> Hello,
>> 
>> After a recent change allowing splitting up the broker configuration across multiple files, starting Artemis fails when the server running broker has no Internet access. xml:specialAttrs references in artemis-configuration.xsd fail because the schema location http://www.w3.org/2005/08/xml.xsd is inaccessible. To reproduce, pull the latest master for 2.5.0-SNAPSHOT, block www.w3.org and try to run a broker. Is there a workaround for this? Note that it's not enough to just add the required XSD to ARTEMIS_HOME\schema and update the schemaLocation since the referenced schema files are inside the artemis-server.jar. The stack trace for the error is as follows.
>> 
>> Best regards,
>> - Ilkka
>> 
>>    _        _               _
>>   / \  ____| |_  ___ __  __(_) _____
>>  / _ \|  _ \ __|/ _ \  \/  | |/  __/
>> / ___ \ | \/ |_/  __/ |\/| | |\___ \
>> /_/   \_\|   \__\____|_|  |_|_|/___ /
>> Apache ActiveMQ Artemis 2.5.0-SNAPSHOT
>> 
>> 
>> Exception in thread "main" org.xml.sax.SAXParseException; systemId: jar:file:/C:/temp/artemis-master/apache-artemis-2.5.0-SNAPSHOT/lib/artemis-server-2.5.0-SNAPSHOT.jar!/schema/artemis-configuration.xsd; lineNumber: 1083; columnNumber: 51; src-resolve: Cannot resolve the name 'xml:specialAttrs' to a(n) 'attribute group' component.
>>       at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
>>       at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
>>       at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4156)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4139)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1682)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeGroupTraverser.traverseLocal(XSDAttributeGroupTraverser.java:80)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(XSDAbstractTraverser.java:643)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(XSDComplexTypeTraverser.java:1123)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(XSDComplexTypeTraverser.java:335)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(XSDComplexTypeTraverser.java:191)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseGlobalDecl(XSDHandler.java:1892)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1780)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(XSDElementTraverser.java:405)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseGlobal(XSDElementTraverser.java:242)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.java:1437)
>>       at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:633)
>>       at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:613)
>>       at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:572)
>>       at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:538)
>>       at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:255)
>>       at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
>>       at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:670)
>>       at org.apache.activemq.artemis.utils.XMLUtil.validate(XMLUtil.java:326)
>>       at org.apache.activemq.artemis.core.config.FileDeploymentManager.readConfiguration(FileDeploymentManager.java:85)
>>       at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:68)
>>       at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:82)
>>       at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:149)
>>       at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:97)
>>       at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:124)
>>       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:498)
>>       at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
>>       at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)

RE: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet

Posted by Ilkka Virolainen <Il...@bitwise.fi>.
Sounds good, thanks!

Here's the JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1731

Best regards,
- Ilkka

-----Original Message-----
From: Michael André Pearce [mailto:michael.andre.pearce@me.com] 
Sent: 6. maaliskuuta 2018 10:51
To: users@activemq.apache.org
Subject: Re: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet

We can pull in this schema into the build so it’s included.

Will try look at this today.

Can you raise a JIRA?

Sent from my iPhone

> On 6 Mar 2018, at 07:39, Ilkka Virolainen <Il...@bitwise.fi> wrote:
> 
> Hello,
> 
> After a recent change allowing splitting up the broker configuration across multiple files, starting Artemis fails when the server running broker has no Internet access. xml:specialAttrs references in artemis-configuration.xsd fail because the schema location http://www.w3.org/2005/08/xml.xsd is inaccessible. To reproduce, pull the latest master for 2.5.0-SNAPSHOT, block www.w3.org and try to run a broker. Is there a workaround for this? Note that it's not enough to just add the required XSD to ARTEMIS_HOME\schema and update the schemaLocation since the referenced schema files are inside the artemis-server.jar. The stack trace for the error is as follows.
> 
> Best regards,
> - Ilkka
> 
>     _        _               _
>    / \  ____| |_  ___ __  __(_) _____
>   / _ \|  _ \ __|/ _ \  \/  | |/  __/
>  / ___ \ | \/ |_/  __/ |\/| | |\___ \
> /_/   \_\|   \__\____|_|  |_|_|/___ /
> Apache ActiveMQ Artemis 2.5.0-SNAPSHOT
> 
> 
> Exception in thread "main" org.xml.sax.SAXParseException; systemId: jar:file:/C:/temp/artemis-master/apache-artemis-2.5.0-SNAPSHOT/lib/artemis-server-2.5.0-SNAPSHOT.jar!/schema/artemis-configuration.xsd; lineNumber: 1083; columnNumber: 51; src-resolve: Cannot resolve the name 'xml:specialAttrs' to a(n) 'attribute group' component.
>        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
>        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
>        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4156)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4139)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1682)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeGroupTraverser.traverseLocal(XSDAttributeGroupTraverser.java:80)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(XSDAbstractTraverser.java:643)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(XSDComplexTypeTraverser.java:1123)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(XSDComplexTypeTraverser.java:335)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(XSDComplexTypeTraverser.java:191)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseGlobalDecl(XSDHandler.java:1892)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1780)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(XSDElementTraverser.java:405)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseGlobal(XSDElementTraverser.java:242)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.java:1437)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:633)
>        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:613)
>        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:572)
>        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:538)
>        at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:255)
>        at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
>        at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:670)
>        at org.apache.activemq.artemis.utils.XMLUtil.validate(XMLUtil.java:326)
>        at org.apache.activemq.artemis.core.config.FileDeploymentManager.readConfiguration(FileDeploymentManager.java:85)
>        at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:68)
>        at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:82)
>        at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:149)
>        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:97)
>        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:124)
>        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:498)
>        at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
>        at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)

Re: Artemis 2.5.0 - Startup fails when XSD validation cannot access Internet

Posted by Michael André Pearce <mi...@me.com>.
We can pull in this schema into the build so it’s included.

Will try look at this today.

Can you raise a JIRA?

Sent from my iPhone

> On 6 Mar 2018, at 07:39, Ilkka Virolainen <Il...@bitwise.fi> wrote:
> 
> Hello,
> 
> After a recent change allowing splitting up the broker configuration across multiple files, starting Artemis fails when the server running broker has no Internet access. xml:specialAttrs references in artemis-configuration.xsd fail because the schema location http://www.w3.org/2005/08/xml.xsd is inaccessible. To reproduce, pull the latest master for 2.5.0-SNAPSHOT, block www.w3.org and try to run a broker. Is there a workaround for this? Note that it's not enough to just add the required XSD to ARTEMIS_HOME\schema and update the schemaLocation since the referenced schema files are inside the artemis-server.jar. The stack trace for the error is as follows.
> 
> Best regards,
> - Ilkka
> 
>     _        _               _
>    / \  ____| |_  ___ __  __(_) _____
>   / _ \|  _ \ __|/ _ \  \/  | |/  __/
>  / ___ \ | \/ |_/  __/ |\/| | |\___ \
> /_/   \_\|   \__\____|_|  |_|_|/___ /
> Apache ActiveMQ Artemis 2.5.0-SNAPSHOT
> 
> 
> Exception in thread "main" org.xml.sax.SAXParseException; systemId: jar:file:/C:/temp/artemis-master/apache-artemis-2.5.0-SNAPSHOT/lib/artemis-server-2.5.0-SNAPSHOT.jar!/schema/artemis-configuration.xsd; lineNumber: 1083; columnNumber: 51; src-resolve: Cannot resolve the name 'xml:specialAttrs' to a(n) 'attribute group' component.
>        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
>        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
>        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:4156)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:4139)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1682)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeGroupTraverser.traverseLocal(XSDAttributeGroupTraverser.java:80)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(XSDAbstractTraverser.java:643)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(XSDComplexTypeTraverser.java:1123)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(XSDComplexTypeTraverser.java:335)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(XSDComplexTypeTraverser.java:191)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseGlobalDecl(XSDHandler.java:1892)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1780)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(XSDElementTraverser.java:405)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseGlobal(XSDElementTraverser.java:242)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.java:1437)
>        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:633)
>        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:613)
>        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:572)
>        at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:538)
>        at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:255)
>        at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)
>        at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:670)
>        at org.apache.activemq.artemis.utils.XMLUtil.validate(XMLUtil.java:326)
>        at org.apache.activemq.artemis.core.config.FileDeploymentManager.readConfiguration(FileDeploymentManager.java:85)
>        at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:68)
>        at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:82)
>        at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:149)
>        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:97)
>        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:124)
>        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:498)
>        at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
>        at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)