sonarqube - Sonar xml schema validation rule causes ClassNotFoundException -


we using xml language sonar plugin , have added custom xpath rules when activate schema check rule classnotfoundexception:

org.sonar.api.utils.sonarexception: java.lang.classnotfoundexception: org.apache.xerces.dom.domimplementationsourceimpl 

initially using sonar version 5.1.1 version 1.3 of xml language plugin installed on ubuntu 14.04 using oracle java version "1.8.0_45" - tried various 1.7 , 1.8 javas. tried running analysis first using sonar runner v2.4 , using sonar ant task v2.3 , both gave same error.

we found there jira raised this: sonarxml-3 has been closed "won't fix" because not reproduced on sonarqube 4.5.4.

we did clean install of sonar 4.5.4 version 1.3 of xml language plugin onto windows machine , used simple test case.

after install did following:

  • created custom rule based on "xml schemas should valid" rule
  • left schemas default "autodetect" , set filepattern "**/*.html"
  • added "html" file suffixes setting of xml plugin
  • activated custom rule in "sonar way" profile

when ran sonar runner on single html file still got same error.

i have looked in xml plugin jar , there contains xercesimpl-2.8.1.jar in meta-inf/lib contains class complains can't find.

i not sure try next. have missed step when configuring sonar server or sonar runner?

edited add simple project info:

a single file analysis, basic.html:

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">   <head>     <title>title of document</title>   </head>   <body>     content    </body> </html> 

sonar-project.properties:

sonar.projectkey=simple:schema-test sonar.projectname=schema check test sonar.projectversion=1.0 sonar.sources=. 

output sonar-runner:

sonarqube runner 2.4 java 1.8.0_45 oracle corporation (64-bit) linux 3.13.0-57-generic amd64 info: runner configuration file: /home/mike/sonardev/sonar-runner-2.4/conf/sonar-runner.properties info: project configuration file: /home/mike/sonardev/simpleschema/sonar-project.properties info: default locale: "en_gb", source code encoding: "utf-8" info: work directory: /home/mike/sonardev/simpleschema/./.sonar info: sonarqube server 4.5.4 13:08:39.283 info  - load global referentials... 13:08:39.765 info  - load global referentials done: 488 ms 13:08:39.805 info  - user cache: /home/mike/.sonar/cache 13:08:39.837 info  - install plugins 13:08:39.864 info  - download sonar-core-plugin-4.5.4.jar 13:08:39.933 info  - download sonar-email-notifications-plugin-4.5.4.jar 13:08:39.979 info  - download sonar-findbugs-plugin-2.4.jar 13:08:40.258 info  - download sonar-java-plugin-2.4.jar 13:08:40.328 info  - download sonar-xml-plugin-1.3.jar 13:08:40.512 info  - download sonar-cpd-plugin-4.5.4.jar 13:08:40.528 info  - download sonar-design-plugin-4.5.4.jar 13:08:40.553 info  - download sonar-dbcleaner-plugin-4.5.4.jar 13:08:40.577 info  - download sonar-l10n-en-plugin-4.5.4.jar 13:08:40.683 info  - install jdbc driver 13:08:40.713 info  - download mysql-connector-java-5.1.27.jar 13:08:40.761 info  - create jdbc datasource jdbc:mysql://localhost:3306/sonar4?useunicode=true&amp;characterencoding=utf8 13:08:44.377 info  - initializing hibernate 13:08:47.843 info  - load project referentials... 13:08:48.430 info  - load project referentials done: 587 ms 13:08:48.438 info  - load project settings 13:08:49.256 info  - loading technical debt model... 13:08:49.348 info  - loading technical debt model done: 92 ms 13:08:49.372 info  - apply project exclusions 13:08:49.988 info  - -------------  scan schema check test 13:08:50.018 info  - load module settings 13:08:51.201 info  - loading rules... 13:08:51.930 info  - loading rules done: 725 ms 13:08:52.035 info  - configure maven plugins 13:08:52.447 info  - compare previous analysis (2015-07-22) 13:08:52.475 info  - compare on 30 days (2015-06-22, analysis of 2015-07-22 12:56:55.0) 13:08:52.480 info  - no quality gate configured. 13:08:53.015 info  - base dir: /home/mike/sonardev/simpleschema/. 13:08:53.022 info  - working dir: /home/mike/sonardev/simpleschema/./.sonar 13:08:53.024 info  - source paths: . 13:08:53.024 info  - source encoding: utf-8, default locale: en_gb 13:08:53.024 info  - index files 13:08:53.224 info  - 1 files indexed 13:08:53.370 info  - quality profile xml: sonar way 13:08:53.422 info  - sensor qprofilesensor... 13:08:53.464 info  - sensor qprofilesensor done: 42 ms 13:08:53.466 info  - sensor initialopenissuessensor... 13:08:53.504 info  - sensor initialopenissuessensor done: 38 ms 13:08:53.510 info  - sensor projectlinkssensor... 13:08:53.533 info  - sensor projectlinkssensor done: 23 ms 13:08:53.539 info  - sensor versioneventssensor... 13:08:53.592 info  - sensor versioneventssensor done: 53 ms 13:08:53.593 info  - sensor filehashsensor... 13:08:53.608 info  - sensor filehashsensor done: 15 ms 13:08:53.608 info  - sensor xmlsensor... 13:08:54.071 error - not analyze file /home/mike/sonardev/simpleschema/basic.html org.sonar.api.utils.sonarexception: java.lang.classnotfoundexception: org.apache.xerces.dom.domimplementationsourceimpl         @ org.sonar.plugins.xml.schemas.schemaresolver.createlsinput(schemaresolver.java:122) ~[na:na]         @ org.sonar.plugins.xml.schemas.schemaresolver.resolveresource(schemaresolver.java:269) ~[na:na]         @ com.sun.org.apache.xerces.internal.util.domentityresolverwrapper.resolveentity(domentityresolverwrapper.java:117) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.impl.xmlentitymanager.resolveentity(xmlentitymanager.java:1079) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.impl.xs.xmlschemaloader.resolvedocument(xmlschemaloader.java:660) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.impl.xs.traversers.xsdhandler.resolveschema(xsdhandler.java:2052) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.impl.xs.traversers.xsdhandler.constructtrees(xsdhandler.java:1008) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.impl.xs.traversers.xsdhandler.parseschema(xsdhandler.java:620) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.impl.xs.xmlschemaloader.loadschema(xmlschemaloader.java:617) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.impl.xs.xmlschemaloader.loadgrammar(xmlschemaloader.java:575) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.impl.xs.xmlschemaloader.loadgrammar(xmlschemaloader.java:541) ~[na:1.8.0_45]         @ com.sun.org.apache.xerces.internal.jaxp.validation.xmlschemafactory.newschema(xmlschemafactory.java:255) ~[na:1.8.0_45]         @ org.sonar.plugins.xml.checks.xmlschemacheck.createschema(xmlschemacheck.java:146) ~[na:na]         @ org.sonar.plugins.xml.checks.xmlschemacheck.validate(xmlschemacheck.java:232) ~[na:na]         @ org.sonar.plugins.xml.checks.xmlschemacheck.autodetectschemaandvalidate(xmlschemacheck.java:164) ~[na:na]         @ org.sonar.plugins.xml.checks.xmlschemacheck.validate(xmlschemacheck.java:222) ~[na:na]         @ org.sonar.plugins.xml.checks.xmlschemacheck.validate(xmlschemacheck.java:260) ~[na:na]         @ org.sonar.plugins.xml.xmlsensor.analyse(xmlsensor.java:77) ~[na:na]         @ org.sonar.batch.phases.sensorsexecutor.executesensor(sensorsexecutor.java:79) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.phases.sensorsexecutor.execute(sensorsexecutor.java:70) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.phases.phaseexecutor.execute(phaseexecutor.java:119) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.scan.modulescancontainer.doafterstart(modulescancontainer.java:194) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.api.platform.componentcontainer.startcomponents(componentcontainer.java:93) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.api.platform.componentcontainer.execute(componentcontainer.java:78) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.scan.projectscancontainer.scan(projectscancontainer.java:233) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.scan.projectscancontainer.scanrecursively(projectscancontainer.java:228) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.scan.projectscancontainer.doafterstart(projectscancontainer.java:221) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.api.platform.componentcontainer.startcomponents(componentcontainer.java:93) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.api.platform.componentcontainer.execute(componentcontainer.java:78) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.scan.scantask.scan(scantask.java:64) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.scan.scantask.execute(scantask.java:51) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.bootstrap.taskcontainer.doafterstart(taskcontainer.java:125) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.api.platform.componentcontainer.startcomponents(componentcontainer.java:93) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.api.platform.componentcontainer.execute(componentcontainer.java:78) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.bootstrap.bootstrapcontainer.executetask(bootstrapcontainer.java:173) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.bootstrapper.batch.executetask(batch.java:95) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.batch.bootstrapper.batch.execute(batch.java:67) [sonar-batch-maven-compat-4.5.4.jar:na]         @ org.sonar.runner.batch.isolatedlauncher.execute(isolatedlauncher.java:48) [sonar-runner-batch2088275009626652419.jar:na]         @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) ~[na:1.8.0_45]         @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) ~[na:1.8.0_45]         @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) ~[na:1.8.0_45]         @ java.lang.reflect.method.invoke(method.java:497) ~[na:1.8.0_45]         @ org.sonar.runner.impl.batchlauncher$1.delegateexecution(batchlauncher.java:87) [sonar-runner-dist-2.4.jar:na]         @ org.sonar.runner.impl.batchlauncher$1.run(batchlauncher.java:75) [sonar-runner-dist-2.4.jar:na]         @ java.security.accesscontroller.doprivileged(native method) [na:1.8.0_45]         @ org.sonar.runner.impl.batchlauncher.doexecute(batchlauncher.java:69) [sonar-runner-dist-2.4.jar:na]         @ org.sonar.runner.impl.batchlauncher.execute(batchlauncher.java:50) [sonar-runner-dist-2.4.jar:na]         @ org.sonar.runner.api.embeddedrunner.doexecute(embeddedrunner.java:102) [sonar-runner-dist-2.4.jar:na]         @ org.sonar.runner.api.runner.execute(runner.java:100) [sonar-runner-dist-2.4.jar:na]         @ org.sonar.runner.main.executetask(main.java:70) [sonar-runner-dist-2.4.jar:na]         @ org.sonar.runner.main.execute(main.java:59) [sonar-runner-dist-2.4.jar:na]         @ org.sonar.runner.main.main(main.java:53) [sonar-runner-dist-2.4.jar:na] caused by: java.lang.classnotfoundexception: org.apache.xerces.dom.domimplementationsourceimpl         @ java.net.urlclassloader.findclass(urlclassloader.java:381) ~[na:1.8.0_45]         @ java.lang.classloader.loadclass(classloader.java:424) ~[na:1.8.0_45]         @ java.lang.classloader.loadclass(classloader.java:357) ~[na:1.8.0_45]         @ org.w3c.dom.bootstrap.domimplementationregistry.newinstance(domimplementationregistry.java:182) ~[na:1.8.0_45]         @ org.sonar.plugins.xml.schemas.schemaresolver.createlsinput(schemaresolver.java:115) ~[na:na]         ... 51 common frames omitted 13:08:54.077 info  - sensor xmlsensor done: 469 ms 13:08:54.079 info  - sensor linecountsensor... 13:08:54.110 info  - sensor linecountsensor done: 31 ms 13:08:54.112 info  - sensor cpd sensor (wrapped)... 13:08:54.112 info  - defaultcpdengine used xml 13:08:54.114 info  - cross-project analysis disabled 13:08:54.148 info  - sensor cpd sensor (wrapped) done: 36 ms 13:08:54.639 info  - execute decorators... 13:08:55.155 info  - store results in database 13:08:55.494 info  - analysis successful, can browse http://localhost:9000/dashboard/index/simple:schema-test 13:08:55.592 info  - executing post-job class org.sonar.plugins.core.issue.notification.sendissuenotificationspostjob 13:08:55.593 info  - executing post-job class org.sonar.plugins.core.batch.indexprojectpostjob 13:08:55.698 info  - executing post-job class org.sonar.plugins.dbcleaner.projectpurgepostjob 13:08:55.782 info  - -> keep 1 snapshot per day between 2015-06-24 , 2015-07-21 13:08:55.793 info  - -> keep 1 snapshot per week between 2014-07-23 , 2015-06-24 13:08:55.799 info  - -> keep 1 snapshot per month between 2010-07-28 , 2014-07-23 13:08:55.809 info  - -> delete data prior to: 2010-07-28 13:08:55.826 info  - -> clean schema check test [id=312] 13:08:55.860 info  - <- clean snapshot 695 info: ------------------------------------------------------------------------ info: execution success info: ------------------------------------------------------------------------ total time: 18.958s final memory: 12m/118m info: ------------------------------------------------------------------------ 


Comments