2016-04-03 15 views
0

Ich versuche, eine einfache Beispielanwendung zum Testen einer Jcache-Implementierung von hazelcast einzurichten. Beispielcode:Fehler in der JCache-Implementierung mit Hazelcast CompleteConfiguration-Klasse nicht gefunden

CachingProvider cachingProvider = Caching.getCachingProvider(); 
CacheManager cacheManager = cachingProvider.getCacheManager(); 

Cache<String, String> m = cacheManager.getCache("test"); 

m.put("key1", "value1"); 

In meiner pom.xml Datei sowohl JCache und sind

definiert Hazelcast
<dependencies> 
    <dependency> 
     <groupId>javax.cache</groupId> 
     <artifactId>cache-api</artifactId> 
     <version>1.0.0-PFD</version> 
    </dependency> 
    <dependency> 
     <groupId>com.hazelcast</groupId> 
     <artifactId>hazelcast</artifactId> 
     <version>3.6.1</version> 
    </dependency> 

Wenn ich den Code, den ich diesen Fehler laufen. Ich kann nicht herausfinden, wo/wie ich diese ComevoleConfiguration-Klasse definieren sollte.

Exception in thread "main" java.lang.NoClassDefFoundError: javax/cache/configuration/CompleteConfiguration 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    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) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    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) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    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) 
    at com.hazelcast.cache.impl.HazelcastServerCachingProvider.createHazelcastCacheManager(HazelcastServerCachingProvider.java:71) 
    at com.hazelcast.cache.impl.HazelcastServerCachingProvider.createHazelcastCacheManager(HazelcastServerCachingProvider.java:42) 
    at com.hazelcast.cache.impl.AbstractHazelcastCachingProvider.getCacheManager(AbstractHazelcastCachingProvider.java:94) 
    at com.hazelcast.cache.impl.AbstractHazelcastCachingProvider.getCacheManager(AbstractHazelcastCachingProvider.java:126) 
    at com.hazelcast.cache.HazelcastCachingProvider.getCacheManager(HazelcastCachingProvider.java:156) 
    at cacheAdapter.TutorialJCache.initCache(TutorialJCache.java:27) 
    at cacheAdapter.TutorialJCache.main(TutorialJCache.java:18) 
Caused by: java.lang.ClassNotFoundException: javax.cache.configuration.CompleteConfiguration 
    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) 
    ... 43 more 

Antwort

2

Sie verwenden die falsche JCache Abhängigkeit:

<dependency> 
    <groupId>javax.cache</groupId> 
    <artifactId>cache-api</artifactId> 
    <version>1.0.0</version> 
</dependency> 

Also, es ohne PFD benutzen, die eine ältere Version für Diskussionen gedacht.