java-在命令行上运行Apache Ignite时无法创建Ignite组件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-在命令行上运行Apache Ignite时无法创建Ignite组件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4664字,纯文字阅读大概需要7分钟。
内容图文
![java-在命令行上运行Apache Ignite时无法创建Ignite组件](/upload/InfoBanner/zyjiaocheng/684/20ba435dee5844aea906c01452802ed0.jpg)
当开始学习点火时,我最终将IntelliJ用作IDE,并且运行良好.但是,我需要将其移至超级计算机环境中,并且需要能够从命令行运行它,但是我的代码却无法找到所需的类.我使用maven创建了项目,并添加了入门指南中提到的适当依赖项.之后,我将项目打包为maven并使用以下命令:
/usr/java/jdk1.8.0_91/bin/java -cp "${IGNITE_HOME}/modules/core/target/ignite-core-1.6.0.jar:${IGNITE_HOME}/modules/core/target/libs/cache-api-1.0.0.jar:${IGNITE_HOME}/modules/spring/target/ignite-spring-1.6.0.jar:target/my-app-1.0-SNAPSHOT.jar" com.mycompany.app.App
但是,无法创建带有以下错误的点火组件:
Exception in thread "main" class org.apache.ignite.IgniteException: Failed to create Ignite component (consider adding ignite-spring module to classpath) [component=SPRING, cls=org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl]
at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:906)
at org.apache.ignite.Ignition.start(Ignition.java:350)
at com.mycompany.app.App.main(App.java:24)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to create Ignite component (consider adding ignite-spring module to classpath) [component=SPRING, cls=org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl]
at org.apache.ignite.internal.IgniteComponentType.componentException(IgniteComponentType.java:313)
at org.apache.ignite.internal.IgniteComponentType.create0(IgniteComponentType.java:289)
at org.apache.ignite.internal.IgniteComponentType.create(IgniteComponentType.java:200)
at org.apache.ignite.internal.IgnitionEx.loadConfigurations(IgnitionEx.java:637)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:840)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:749)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:619)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:589)
at org.apache.ignite.Ignition.start(Ignition.java:347)
... 1 more
Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/BeansException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.ignite.internal.IgniteComponentType.create0(IgniteComponentType.java:275)
... 8 more
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.BeansException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 11 more
寻找其他类似的问题,我发现这是因为未能在pom文件中包含ignite-spring.但是我已经包括了.这是我的pom文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-core</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-spring</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-indexing</artifactId>
<version>1.6.0</version>
</dependency>
</dependencies>
</project>
我要去哪里错了?重要的IDE导致某些事情变得不一致了吗?我运行代码的命令是否不完整或错误?谢谢您的帮助.如果需要,这里是发生错误的代码的第一行:
package com.mycompany.app;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.StringTokenizer;
public class App
{
public static void main( String[] args ) {
printClasspath();
String data;
try {
data = readFile("tweet.txt");
Ignite ignite = Ignition.start("/ignite-1.6.0/examples/config/example-ignite.xml");
IgniteCache<Integer, String[]> cache = ignite.getOrCreateCache("myCacheName");
...
}
}
}
解决方法:
我建议执行以下操作:
>将所有应用程序类(无Ignite依赖项)打包到JAR中,并将其放入IGNITE_HOME / libs文件夹中.
>将MAIN_CLASS环境变量设置为您的主类(com.mycompany.app.App).
>运行IGNITE_HOME / bin / ignite.sh脚本.它将使用所有必需的Ignite依赖关系正确地形成Java的classpath参数,并将运行您的应用程序.
内容总结
以上是互联网集市为您收集整理的java-在命令行上运行Apache Ignite时无法创建Ignite组件全部内容,希望文章能够帮你解决java-在命令行上运行Apache Ignite时无法创建Ignite组件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。