NoClassDefFoundError in org.opendaylight.yangtools.yang.parser.rfc7950.reactor.ServiceLoaderState$XPath

110 Views Asked by At

I use org.opendaylight.yangtools 9.0.7

    <dependencies>
        <dependency>
            <groupId>org.opendaylight.yangtools</groupId>
            <artifactId>yang-common</artifactId>
            <version>9.0.7</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.yangtools</groupId>
            <artifactId>yang-model-api</artifactId>
            <version>9.0.7</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.yangtools</groupId>
            <artifactId>yang-data-codec-gson</artifactId>
            <version>9.0.7</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.yangtools</groupId>
            <artifactId>yang-parser-api</artifactId>
            <version>9.0.7</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.yangtools</groupId>
            <artifactId>yang-parser-impl</artifactId>
            <version>9.0.7</version>
        </dependency>
    </dependencies>

I create reactor to build SchemaContext similar as it is described in https://docs.opendaylight.org/en/stable-sulfur/developer-guides/yang-tools.html#working-with-yang-model:

import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors;
import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;

public class MyFactory {

    protected CrossSourceStatementReactor.BuildAction getDefaultBuildAction() {
        CrossSourceStatementReactor reactor = RFC7950Reactors.vanillaReactorBuilder()
                .build();
        return reactor.newBuild();
    }
}

sometimes system throws exception:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.opendaylight.yangtools.yang.parser.rfc7950.reactor.ServiceLoaderState$XPath
              at org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors.vanillaReactorBuilder(RFC7950Reactors.java:320) ~[yang-parser-rfc7950-9.0.7.jar!/:na]
              at org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors.vanillaReactorBuilder(RFC7950Reactors.java:315) ~[yang-parser-rfc7950-9.0.7.jar!/:na]
              at com.package.MyFactory.getDefaultBuildAction(MyFactory.java:9) ~[my-component-1.1.1.jar!/:na]

this is floating problem which occurs from time to time after start. Usually the error disappears after redeploying my application.

Could you tell if there exist alternative ways to get the model? Or how can we avoid this error?

Thanks

0

There are 0 best solutions below