Custom xml plugin

I am getting the below error.

java.lang.NoClassDefFoundError: org/sonarsource/analyzer/commons/xml/checks/SimpleXPathBasedCheck
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
	at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:555)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
	at org.sonar.classloader.ClassRealm.loadClassFromSelf(ClassRealm.java:125)
	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:37)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
	at org.sonar.plugins.xml.checks.CheckList.getCheckClasses(CheckList.java:58)
	at org.sonar.plugins.xml.XmlCustomRulesDefinition.checkClasses(XmlCustomRulesDefinition.java:93)
	at org.sonar.plugins.xml.XmlCustomRulesDefinition.define(XmlCustomRulesDefinition.java:62)
	at org.sonar.server.rule.RuleDefinitionsLoader.load(RuleDefinitionsLoader.java:53)
	at org.sonar.server.rule.RegisterRules.start(RegisterRules.java:117)
	at org.sonar.core.platform.StartableCloseableSafeLifecyleStrategy.start(StartableCloseableSafeLifecyleStrategy.java:40)
	at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
	at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
	at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
	at org.picocontainer.behaviors.Stored.start(Stored.java:110)
	at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)
	at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)
	at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:90)
	at org.sonar.server.platform.platformlevel.PlatformLevelStartup.access$001(PlatformLevelStartup.java:49)
	at org.sonar.server.platform.platformlevel.PlatformLevelStartup$1.doPrivileged(PlatformLevelStartup.java:87)
	at org.sonar.server.user.DoPrivileged.execute(DoPrivileged.java:45)
	at org.sonar.server.platform.platformlevel.PlatformLevelStartup.start(PlatformLevelStartup.java:84)
	at org.sonar.server.platform.PlatformImpl.executeStartupTasks(PlatformImpl.java:198)
	at org.sonar.server.platform.PlatformImpl.access$400(PlatformImpl.java:46)
	at org.sonar.server.platform.PlatformImpl$1.lambda$doRun$1(PlatformImpl.java:122)
	at org.sonar.server.platform.PlatformImpl$AutoStarterRunnable.runIfNotAborted(PlatformImpl.java:370)
	at org.sonar.server.platform.PlatformImpl$1.doRun(PlatformImpl.java:122)
	at org.sonar.server.platform.PlatformImpl$AutoStarterRunnable.run(PlatformImpl.java:354)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: org.sonarsource.analyzer.commons.xml.checks.SimpleXPathBasedCheck
	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
	... 38 common frames omitted

Hi,

Welcome to the community!

I guess you’re writing your own plugin? For what language? Based on the stacktrace, I’m guessing XML? If so, you need to know that there’s no support for custom rules for XML written in Java.

 
Ann

Hello,
I have the same error.
Can you help me?
I’m writing custom rules for XML.
Using the following dependencies in pom.xml:

		<dependency>
		    <groupId>org.sonarsource.sonarqube</groupId>
		    <artifactId>sonar-plugin-api-impl</artifactId>
		    <version>10.2.1.78527</version>
		    <scope>test</scope>
		</dependency>
	
		<dependency>
		    <groupId>org.sonarsource.api.plugin</groupId>
		    <artifactId>sonar-plugin-api</artifactId>
		    <version>10.0.0.695</version>
		    <scope>provided</scope>
		</dependency>

		<dependency>
		    <groupId>org.sonarsource.analyzer-commons</groupId>
		    <artifactId>sonar-xml-parsing</artifactId>
		    <version>2.7.0.1482</version>
		    <scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	   	   	
	   	<dependency>
	        <groupId>org.sonarsource.analyzer-commons</groupId>
	        <artifactId>sonar-analyzer-commons</artifactId>
	        <version>2.7.0.1482</version>
	        <scope>provided</scope>
      	</dependency>

When connecting the JAR to Sonarqube the following error appears:

Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/sonarsource/analyzer/commons/xml/checks/SimpleXPathBasedCheck

Thank you for helping.

Hi,

Welcome to the community!

This thread is well over a year old. Per the FAQ please create a new one. Please include all relevant details, possibly including your code.

 
Ann