2017-09-15 108 views
0

我正在用Apache Ignite和Springboot开发分布式计算应用程序,并希望使用点燃REST API。如何在Springboot应用程序上启用Apache Ignite REST API?

以下是我的开发规范。
的Java 1.8
springboot 1.5.6
点燃2.1.0

我在我的POM文件添加依赖点燃休息-HTTP(2.1.0版)。 但是在启动我的springboot应用程序时有一个问题。 这里是错误日志。

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ignite.Ignite]: Factory method 'igniteInstance' threw exception; nested exception is java.lang.NoSuchMethodError: org.eclipse.jetty.util.log.StdErrLog.setProperties(Ljava/util/Properties;)V 
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) 
    ... 35 common frames omitted 
Caused by: java.lang.NoSuchMethodError: org.eclipse.jetty.util.log.StdErrLog.setProperties(Ljava/util/Properties;)V 
    at org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.<clinit>(GridJettyRestProtocol.java:72) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at org.apache.ignite.internal.processors.rest.GridRestProcessor.startHttpProtocol(GridRestProcessor.java:864) 
    at org.apache.ignite.internal.processors.rest.GridRestProcessor.start(GridRestProcessor.java:477) 
    at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1788) 
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:937) 
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1896) 
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1648) 
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1076) 
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:574) 
    at org.apache.ignite.IgniteSpring.start(IgniteSpring.java:66) 
    at com.ssg.framework.config.ignite.IgniteDefaultConfiguration.igniteInstance(IgniteDefaultConfiguration.java:59) 
    at com.ssg.framework.config.ignite.IgniteDataConfiguration$$EnhancerBySpringCGLIB$$84d5bde0.CGLIB$igniteInstance$7(<generated>) 
    at com.ssg.framework.config.ignite.IgniteDataConfiguration$$EnhancerBySpringCGLIB$$84d5bde0$$FastClassBySpringCGLIB$$a827740d.invoke(<generated>) 
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) 
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358) 
    at com.ssg.framework.config.ignite.IgniteDataConfiguration$$EnhancerBySpringCGLIB$$84d5bde0.igniteInstance(<generated>) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) 
    ... 36 common frames omitted 

在StdErrLog类,不存在 'setProperties方法(属性)' 的方法,但是被称为在GridJettyRestProtocol类。 我无法理解它是如何构建的,没有语法错误。 无论如何,有没有人有解决方案?

============================================== ============================== 我在下面添加了我的pom文件。

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-devtools</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-aop</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>net.bytebuddy</groupId> 
     <artifactId>byte-buddy</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>net.bytebuddy</groupId> 
     <artifactId>byte-buddy-agent</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-spring</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>cglib</groupId> 
     <artifactId>cglib</artifactId> 
     <version>3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-indexing</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-spring-data</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-slf4j</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-urideploy</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.projectlombok</groupId> 
     <artifactId>lombok</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.zaxxer</groupId> 
     <artifactId>HikariCP</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.lazyluke</groupId> 
     <artifactId>log4jdbc-remix</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.bgee.log4jdbc-log4j2</groupId> 
     <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.mybatis</groupId> 
     <artifactId>mybatis</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.mybatis</groupId> 
     <artifactId>mybatis-spring</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc6</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>net.openhft</groupId> 
     <artifactId>compiler</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.webjars</groupId> 
     <artifactId>bootstrap</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.esotericsoftware</groupId> 
     <artifactId>reflectasm</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ignite</groupId> 
     <artifactId>ignite-rest-http</artifactId> 
     <version>2.1.0</version> 
    </dependency> 
</dependencies> 
+0

你能添加你的pom文件吗? – Konstantin

+0

@Konstantin我加了我的pom。 thnx –

+0

我同意以下答案:您在不同的Jetty版本之间有冲突。要解决依赖冲突,你可以使用[Maven Dependency Plugin](https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html) – Konstantin

回答

1

ignite-rest-http模块依赖于Jetty 9.2.11.v20150529。你的错误很可能意味着在类路径上已经有另一个版本的Jetty,并且它们相互冲突。你应该检查你的Maven(或者Gradle等)项目到底部。

+0

我添加了我的pom文件,并检查了依赖关系层次结构,但找不到任何其他版本的jetty。你能给我更多的帮助吗? –

+0

尝试使用[Maven Dependency Plugin](https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html) – Konstantin

相关问题