Hi , ann body know how to fix java.lang.NoClassDefFoundError ? It happened
random in ignite cluster.
I have dependency and config in spring boot application.
@Bean
public Ignite igniteServerMode() throws IgniteCheckedException {
// Apache Ignite node configuration.
IgniteConfiguration igniteConfiguration = new IgniteConfiguration();
// Ignite persistence configuration.
DataStorageConfiguration dataStorageConfiguration = new
DataStorageConfiguration();
//set dataStorageConfiguration
{
// Enabling the writes throttling.
dataStorageConfiguration.setWriteThrottlingEnabled(true);
//prsist data region
DataRegionConfiguration dataRegionConfiguration =
dataStorageConfiguration.getDefaultDataRegionConfiguration();
// Enabling the persistence.
dataRegionConfiguration.setPersistenceEnabled(true);
//set persist region name
dataRegionConfiguration.setName(igniteProperties.getPersistRegionName());
// Increasing the buffer size to 1 GB.
dataRegionConfiguration.setCheckpointPageBufferSize(1024 * 1024 *
1024);
// Creating a new cache region.
DataRegionConfiguration cacheRegionConfiguration = new
DataRegionConfiguration();
// Region name.
cacheRegionConfiguration.setName(igniteProperties.getCacheRegionName());
// Setting initial RAM size 100M
cacheRegionConfiguration.setInitialSize(100 * 1024 * 1024);
// Setting maximum RAM size 1G
cacheRegionConfiguration.setMaxSize(1024 * 1024 * 1024);
// Setting the data region configuration.
dataStorageConfiguration.setDataRegionConfigurations(cacheRegionConfiguration);
if (!igniteProperties.getDataPath().equalsIgnoreCase("local")) {
//set work path
igniteConfiguration.setWorkDirectory(igniteProperties.getDataPath() + workPath);
//set store path
dataStorageConfiguration.setStoragePath(igniteProperties.getDataPath() +
storePath);
dataStorageConfiguration.setWalPath(igniteProperties.getDataPath() + walPath);
dataStorageConfiguration.setWalArchivePath(igniteProperties.getDataPath() +
walArchivePath);
}
// Applying settings.
igniteConfiguration.setDataStorageConfiguration(dataStorageConfiguration);
}
//set cluster config
{
//add cluster config
TcpDiscoverySpi tcpDiscoverSpi = new TcpDiscoverySpi();
TcpDiscoveryJdbcIpFinder ipFinder = new TcpDiscoveryJdbcIpFinder();
// Configure your DataSource.
ipFinder.setDataSource(igniteSpiDatasource);
tcpDiscoverSpi.setIpFinder(ipFinder);
tcpDiscoverSpi.setNetworkTimeout(igniteProperties.getNetworkTimeout());
igniteConfiguration.setDiscoverySpi(tcpDiscoverSpi);
}
//set sql client port
{
//add sql connection configuration
ClientConnectorConfiguration clientConnectorConfiguration = new
ClientConnectorConfiguration();
clientConnectorConfiguration.setPort(igniteProperties.getSqlPort());
igniteConfiguration.setClientConnectorConfiguration(clientConnectorConfiguration);
}
//start ignite
Ignite ignite = IgniteSpring.start(igniteConfiguration, context);
ignite.active(true);
return ignite;
}
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-core</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-spring</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-indexing</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-slf4j</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用
________________________________
发件人: 王 刚 <[email protected]>
发送时间: Thursday, March 15, 2018 4:29:44 PM
收件人: [email protected]
主题: Ignite cluster always throw java.lang.NoClassDefFoundError
Hi, guys. I meat an issue in ignite cluster. I am using ignite in spring-boot
1.5.8 by add ignite-core dependency 2.30. And the cluster use JDBC DiscoverySpi
as cluster ipFinder.
If i kill spring-boot-ignite by chance, and try to restart, ignite alaws throws
an NoClassDefFoundError: java.lang.NoClassDefFoundError:
ch/qos/logback/classic/spi/ThrowableProxy or other class like
org/springframework/http/ResponseEntity. But I’am sure the class is in jar
file. And after i remove all the files in /store/node, ignite can successfully
start.
These are my pom file, configuration file and log file.
发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用