Strange Loops

No Matter Where You Go, There You Are

ActiveMQ Gotcha!

| Comments

We were doing a trial deploy of our brand new java service to the production host yesterday. The service had started up everywhere else so far

Of course it didn't start up on this production host. In the logs was a stack trace that included this error message:

cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'amq:broker'.

What caused this problem? This production host was firewalling off connections to activemq.apache.org. This host was serving a XSD file which was required to validate the XML namespace we have used.

I'm thinking WTF! Seriously? Why wasn't the XSD file deployed with jars?

The simplest solution/workaround was to take  http://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd and make it http://activemq.apache.org/schema/core/activemq-core.xsd in our XML file. When validating the XML file, it'll use a version of the file available within the activemq jars.

Dropping the version causes Eclipse to complain but that's another problem (and another google search).